【003】class 类入门 - 图1

ES6中的class

新的Class类写法【2020用这个】

  1. class Cat {
  2. // 用class关键字写个猫咪类
  3. constructor (type) {
  4. // 这个就是构造函数
  5. this.type = type
  6. // this 就是实例化后的对象
  7. }
  8. eat () {
  9. // 实例方法现在写在构造函数后
  10. console.log('eat Cat food')
  11. }
  12. }
  13. // 新建猫咪的实例对象
  14. let luna = new Cat('ChinaCat')
  15. let mike = new Cat('BritchCat')
  16. // 实例对象使用eat方法
  17. luna.eat()
  18. mike.eat()

ES5以前仿制class

过时的类写法【淘汰了】【了解一下吧】

  1. // 老版本中类最最古老的写法
  2. let Animal = function (type) {
  3. this.type = type
  4. this.eat = function () {
  5. console.log('eating')
  6. }
  7. }
  8. // 创建对象实例
  9. let dog = new Animal('dog')
  10. let monkey = new Animal('monkey')
  11. // 打印出对象
  12. console.log(dog)
  13. console.log(monkey)

原理都在原型链上

写在原型链prototype上,可以节约内存,这个才是正规的写法,不然对象会自持有-太占内存空间了

  1. // 写一个Dog类
  2. let Dog = function (type) {
  3. this.type = type
  4. }
  5. // eat 方法写在 prototype[原型链] 上
  6. Dog.prototype.eat = function () { console.log('eat Dog food') }
  7. // 创建实例对象
  8. let luce = new Dog('goldenHair')
  9. let rose = new Dog('labrador')
  10. // 使用实例对象的eat方法
  11. luce.eat()
  12. rose.eat()