super的使用

avatar
作者
猴君
阅读量: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 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!