首先是 super(), class 的继承必须要在子类里面调用 super()方法, 子类自己的this对象,必须先通过父类的构造函数完成塑造,得到与父类同样的实例属性和方法,然后再对其进行加工,加上子类自己的实例属性和方法。得到子类自己的this, 举个栗子
{
class Father {
constructor() {
this.name = 'test';
}
sayName() {
console.log(this.name);
}
};
class Son extends Father{
constructor(age) {
super(); // 这里相当于是 **Father.prototype.constructor.apply(this, params)**,this 就是子类实例的this, 调用之后, 这里就把 Father 里面的name拿了过来,放到了子类实例的this上面, 于是,实例化出来的子类实例上面就拥有一个 name的属性, 值是test, 还有一个sayName的方法
this.age = age;
}
}
}