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 关键字,否则报错。

相关推荐
都叫我大帅哥1 小时前
从Python到Java:为什么企业级Agent最终会选择Java?
java·ai编程
wanderist.2 小时前
Lambda表达式在算法竞赛中的应用
java·开发语言·算法
腻害兔3 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:IM 即时通讯模块,一个被低估的「全功能聊天系统」
java·前端·vue.js·产品经理·ai编程
心念枕惊3 小时前
.NET CORE 授权进阶-角色、策略与动态权限实现
java·前端·.netcore
景同学5 小时前
把 AI 用到线上运维:可行、有效,前提是喂足信息——一次 Full GC 排障实录
java·人工智能·后端
C++、Java和Python的菜鸟5 小时前
第7章 后端Web实战(Tlias系统)
java
憧憬成为java架构高手的小白6 小时前
黑马八股--spring框架学习
java·学习·spring
唐青枫6 小时前
Java Picocli 实战详解:用注解写出好用的命令行工具
java
X-⃢_⃢-X6 小时前
四、OpenFeign远程调用
java·微服务·springboot·springcloud
减瓦7 小时前
深入 Quarkus:云原生时代 Java 的重生之路
java·开发语言·云原生