首先,ES6 的 class
属于一种“语法糖”,所以只是写法更加优雅,更加像面对对象的编程,其思想和 ES5 是一致的。
===============================================================================================
划重点:
关于super中的this指向
注意:当使用super指向原型对象中的一个方法时,方法中的this不指向原型对象,而是指向当前所存在的子类对象。
父子类关系时,子类中的this问题
注意:子类在继承父类时,子类中是找不到this的,没有自己的this对象,只能使用super继承父类中的this对象,然后在加工。
即在ES6的继承,需要先创建父类的this,子类调用super继承父类的this对象,然后再用子类的构造函数对this进行加工。
这里另外说一下与es5继承方式的区别:
es5的继承,实质是先创造子类的实例对象 this ,然后再将父类的方法添加到 this 上面( Parent.apply(this) )
举例如下:
class Demo{
constructor(x,y) {
this.x = x;
this.y = y;
}
}
class Demo2 extends Demo{
constructor(x,y){