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
相关推荐
风止何安啊6 分钟前
网页都知道要双向握手才加载!从 URL 到页面渲染,单向喜欢连 DNS 都解析不通
前端·javascript·面试
太极OS12 分钟前
给 AI Skill 做 CI/CD:GitHub + ClawHub + Xiaping 同步发布实战
前端
你_好12 分钟前
Chrome 内置了 AI 工具协议?WebMCP 抢先体验 + 开源 DevTools 全解析
前端·mcp
GISer_Jing13 分钟前
LangChain.js + LangGraph.js 前端AI开发实战指南
前端·javascript·langchain
正在发育ing__16 分钟前
从源码看vue的key和状态错乱的patch
前端
木心术118 分钟前
TypeScript实战进阶:从基础类型到高级类型编程
javascript·ubuntu·typescript
Hello--_--World37 分钟前
浏览器同源策略与跨域问题
javascript
yuqifang40 分钟前
vue3+typescript+vite封装自己的UI组件库并上传至npm
vue.js·arkui
黄林晴41 分钟前
第一次听到 Tauri 这个词,去学习一下
前端
零瓶水Herwt41 分钟前
JavaScript对象继承常用详解
javascript