es5/es6继承的区别

es5的继承实质上是通过prototype或构造函数机制来实现的。

es5的继承实质上是先创建子类的实例对象,然后再将父类的方法添加到this上,Parent.apply(this)。

es6的继承机制实质上是先创建父类的实例对象this(所以必须先调用父类的super方法),然后再用子类的构造函数修改this、具体为es6通过class关键字定义类,里面有构造方法,类之间通过extends关键字实现继承,子类必须在constructor方法中调用super方法,否则新建实例报错。因为子类没有自己的this对象,而是继承了父类的this对象,然后对其调用。如果不调用super方法,子类得不到this对象。

super关键字指代父类的实例,即父类的this对象。在子类构造函数中,调用super方法后才可使用this关键字,否则报错。

以自己现在的努力程度,还没有资格和别人拼天赋
原文地址:https://www.cnblogs.com/zhenjianyu/p/13572263.html