JavaScript继承有传统组合继承和ES6 class两种方式:前者通过call/apply与Object.create实现但易出错;后者用extends和super封装细节,更简洁规范,但仍是原型链语法糖,不支持多重继承。

JavaScript 中实现继承的方式有多种,ES6 的 class 语法本质上是基于原型链的语法糖,它没有引入新的面向对象机制,但大幅提升了可读性与开发效率。
传统方式:基于原型链和构造函数的继承
在 ES6 之前,常用组合继承(构造函数 + 原型链)来模拟类式继承:
- 用
call()或apply()在子类构造函数中调用父类,继承实例属性; - 将父类原型赋给子类原型(如
Sub.prototype = Object.create(Super.prototype)),继承方法; - 手动修复
constructor指向,避免丢失子类构造器引用。
这种方式逻辑清晰但代码冗长,容易出错,比如忘记设置 constructor、多次调用父类构造函数、或原型链污染等。
ES6 class 继承:简洁、规范、语义明确
class 语法通过 extends 和 super() 封装了上述细节:
立即学习“Java免费学习笔记(深入)”;
标签: react javascript es6 java typescript app 工具 speak
还木有评论哦,快来抢沙发吧~