1、继承而来的类 constructor 方法中的this必须在super之后
2、例1的代码会报错,因为VideoIntercomDevice 调用了super但是super没有传参,是个undefined,undefined去结构就会报错的,纠正的话改为 super({})
3、那我好奇,到底super复制的属性级别更高,还是子类中this指定的值等级更高,见例2,结论:无所谓级别高低,会覆盖掉
例1:
javascript
class Config {
constructor() {
console.log('Config调用')
this.id = 0;
}
}
class AccessDevice extends Config {
constructor({ id, isCsJump }) {
console.log('AccessDevice')
super();
this.id = id;
this.isCsJump = isCsJump;
}
}
class VideoIntercomDevice extends AccessDevice {
constructor({ id, isCsJump }) {
console.log('1', id, isCsJump)
super()
console.log('id', id)
this.id = 9;
this.isCsJump = isCsJump;
}
}
let ad = new VideoIntercomDevice({id: 1,isCsJump: true})
console.log(ad)
// 最终会打印:1 1 true