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

相关推荐
禾小西2 分钟前
深入理解 Java String:从底层原理到高性能优化实战
java·开发语言·性能优化
渔民小镇7 分钟前
不用前端也能测试 —— 模拟客户端请求模块详解
java·服务器·前端·分布式·游戏
星如雨グッ!(๑•̀ㅂ•́)و✧14 分钟前
Spring WebFlux中DataBufferLimitException异常的解决方案
java·后端·spring
独断万古他化18 分钟前
Selenium 实战 —— 抽奖系统 UI 自动化测试框架搭建
java·selenium·测试工具·ui·自动化·测试
心勤则明21 分钟前
使用 Spring AI Alibaba MCP 结合 Nacos 实现企业级智能体应用
java·人工智能·spring
ruiang27 分钟前
SQL中字符串截取函数(substring)
java
okiseethenwhat36 分钟前
Java 进程 CPU 飙高排查全流程详解
java·开发语言
2601_9498166837 分钟前
使用rustDesk搭建私有远程桌面
java
看见代码就想敲44 分钟前
java学习之(Maven pom.xml 详细讲解)
java·学习·maven