阅读量:0
1、继承而来的类 constructor 方法中的this必须在super之后
2、例1的代码会报错,因为VideoIntercomDevice 调用了super但是super没有传参,是个undefined,undefined去结构就会报错的,纠正的话改为 super({})
3、那我好奇,到底super复制的属性级别更高,还是子类中this指定的值等级更高,见例2,结论:无所谓级别高低,会覆盖掉
例1:
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