ES5/ES6 的继承除了写法以外还有什么区别?

ES5/ES6 的继承除了写法以外还有什么区别?

1、ES5的继承实质上是先创建子类的实例对象,然后再将父类的方法添加到 this 上(如:Parent.apply(this))。

2、ES6的继承机制完全不同,实质上是先创建父类的实力对象 this(所以必须调用父类的 super() 方法),然后再用子类的构造函数修改 this。

3、ES5的继承时通过原型或构造函数机制来实现。

4、ES6通过 class 关键字定义类,里面有构造方法,类之间通过 extends 关键字实现继承。

5、子类必须在 constructor 方法中调用 super 方法,否则新建示例报错。因为子类没有自己的 this 对象,而是继承了父类的 this 对象,然后对其进行加工。如果不调用 super 方法,子类得不到 this 对象。

6、注意: super 关键字指代父类的实例,即父类的 this 对象。

7、注意:在子类构造函数中,调用 super 后,才可使用 this 关键字,否则报错。

相关推荐
凤凰院凶涛QAQ10 小时前
《Java版数据结构 & 集合类剖析》栈与队列:“push/pop 是栈的灵魂,offer/poll 是队列的骨架——四组 API,两种人生”
java·开发语言·数据结构
掘金_答案11 小时前
上线那天,一个 ConcurrentHashMap 差点送走我的 AI 客服——3 天排查 JVM 血泪史
java·后端·架构
猿与禅12 小时前
CosId 分布式 ID 生成器完全教程:从架构原理到生产落地
java·shardingsphere·雪花算法·分布式id·高性能·cosid·号段模式
MindUp12 小时前
企业网盘权限模型解析:多层级访问控制与审计能力选型指南
java·linux·运维
NG47712 小时前
【软件设计与体系结构】-策略设计模式
java·设计模式·软件工程
程序员天天困12 小时前
优雅记录操作日志:从注解到 SpEL 的全链路实践与开源方案对比
java·后端
战血石LoveYY13 小时前
Integer类型超限,导致数据异常
java·算法
乐观的Terry14 小时前
1、为什么要自己造发布系统
java·spring boot·后端·spring cloud·架构
兰令水14 小时前
hot100【acm版】【2026.7.13打卡-java版本】
java·开发语言·数据结构·算法·leetcode·面试