白狗子的博客

「天上浮云如白衣,斯须改变如苍狗。」——杜甫

JavaScript-面试-继承与class

2026年10月16日·Admin·2 次浏览

面试题:JS 继承有哪些方式?class 语法糖指什么?

历史方案(了解即可)

  1. 原型链:Sub.prototype = new Super() —— 父实例属性混到原型上,问题多。
  2. 构造函数借用:Super.call(this) —— 只拷实例属性,原型方法不在链上。
  3. 组合继承:上面两者结合 + 修正原型。
  4. 寄生组合(相对标准):Object.create(Super.prototype) 作中间对象,避免两次调用父构造。

ES6 class / extends

  • class 仍是原型继承语法糖,方法在 prototype。
  • extends 处理原型链与 super() 调用。
  • 静态方法在构造函数上;私有字段 # 真正私有。

super

  • 子构造函数里必须先 super() 才能用 this。
  • 子实例方法里 super.method() 调用父原型方法。

© 2025 My Blog. Built with Nuxt.js v4