JavaScript-面试-继承与class
2026年10月16日·Admin·2 次浏览
面试题:JS 继承有哪些方式?class 语法糖指什么?
历史方案(了解即可)
- 原型链:
Sub.prototype = new Super()—— 父实例属性混到原型上,问题多。 - 构造函数借用:
Super.call(this)—— 只拷实例属性,原型方法不在链上。 - 组合继承:上面两者结合 + 修正原型。
- 寄生组合(相对标准):
Object.create(Super.prototype)作中间对象,避免两次调用父构造。
ES6 class / extends
class仍是原型继承语法糖,方法在prototype。extends处理原型链与super()调用。- 静态方法在构造函数上;私有字段
#真正私有。
super
- 子构造函数里必须先
super()才能用this。 - 子实例方法里
super.method()调用父原型方法。