使用类与传统函数的区别
如果声明为一个类 在变量赋值的时候 该变量没有this this没有发生自动包装 所以在直接调用speak 和 eat的时候回出现返回undefined这种情况(无论是严格模式 还是 非严格模式)
但是 当我们基于函数类传统的这种方法来写代码 那么基于该函数this指针会自动装箱 就可以被调用到
与原来的原型链继承不一样 子类Dog可以直接使用extends 关键字来继承Animal 并且会自动的调用父类的constructor
也可以扩展传统的基于函数的“类”: Animal原型中的函数需要使用super关键字来调用
请注意,类不能继承常规(非可构造)对象。如果要继承常规对象,可以改用Object.setPrototypeOf()
:
原文地址
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Classes