前端/移动开发面试题更新 2026-08-05

请用多种方式在 JavaScript 里实现继承,并要求给出具体代码示例,尽可能覆盖不同写法。

前端/移动开发编码实现技术原理JavaScript

考察说明

考查对 JavaScript 继承机制的理解与多种实现方式的掌握程度。

回答思路

  1. 【回答框架 1】原型链继承是 JavaScript 最基本的继承方式,通过让子类的原型指向父类实例实现,缺点是实例共享引用类型属性,且无法向父类构造函数传参。
  2. 【回答框架 2】构造函数继承通过在子类构造函数中调用父类构造函数(使用 call 或 apply)实现,可传参且实例属性独立,但无法复用原型上的方法。
  3. 【回答框架 3】组合继承结合原型链和构造函数,既能传参又能复用方法,但会调用两次父类构造函数,导致子类原型上多出无用属性。
  4. 【回答框架 4】原型式继承通过 Object.create 创建以现有对象为原型的对象,适合简单场景,ES5 中可用。
  5. 【回答框架 5】ES6 的 class 与 extends 语法糖是更现代且推荐的方式,底层仍是原型链,但语义更清晰,支持 super 调用父类方法。
  6. 【关键点 1】原型链继承共享引用属性风险高。
  7. 【关键点 2】组合继承会调用两次父类构造函数。
  8. 【关键点 3】Object.create 实现原型式继承。
  9. 【关键点 4】ES6 class extends 是主流推荐。
  10. 【关键点 5】寄生组合式继承是 ES5 的最佳实践。
  11. 【易错点 1】不要混淆原型链与 instanceof 判断,instanceof 只能检查原型链上的构造器。
  12. 【易错点 2】箭头函数不能作为构造函数,无法进行继承。
  13. 【易错点 3】修改子类原型上的引用类型属性可能影响所有实例。