super的使用

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
相关推荐
写不来代码的草莓熊9 分钟前
vue前端面试题——记录一次面试当中遇到的题(10)
前端·vue.js·面试
tiantian_cool16 分钟前
正确的 .gitignore 配置
前端·github
三小河17 分钟前
封装 classNames:让 Tailwindcss 类名处理更优雅
前端·javascript
起这个名字19 分钟前
ESLint 导入语句的分组排序
前端·javascript
踩着两条虫20 分钟前
VTJ.PRO低代码快速入门指南
前端·低代码
Lazy_zheng20 分钟前
一场“数据海啸”,让我重新认识了 requestAnimationFrame
前端·javascript·vue.js
crary,记忆21 分钟前
MFE: React + Angular 混合demo
前端·javascript·学习·react.js·angular·angular.js
Asort23 分钟前
JavaScript设计模式(十七)——中介者模式 (Mediator):解耦复杂交互的艺术与实践
前端·javascript·设计模式
linda261823 分钟前
String() 和 .toString()的区别
前端·javascript·面试
拜晨25 分钟前
初探supabase: RLS、trigger、edge function
前端