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

相关推荐
椰椰椰耶几秒前
【文档搜索引擎】缓冲区优化和索引模块小结
java·spring·搜索引擎
mubeibeinv2 分钟前
项目搭建+图片(添加+图片)
java·服务器·前端
青莳吖3 分钟前
Java通过Map实现与SQL中的group by相同的逻辑
java·开发语言·sql
Buleall11 分钟前
期末考学C
java·开发语言
重生之绝世牛码13 分钟前
Java设计模式 —— 【结构型模式】外观模式详解
java·大数据·开发语言·设计模式·设计原则·外观模式
小蜗牛慢慢爬行19 分钟前
有关异步场景的 10 大 Spring Boot 面试问题
java·开发语言·网络·spring boot·后端·spring·面试
新手小袁_J43 分钟前
JDK11下载安装和配置超详细过程
java·spring cloud·jdk·maven·mybatis·jdk11
呆呆小雅44 分钟前
C#关键字volatile
java·redis·c#
Monly211 小时前
Java(若依):修改Tomcat的版本
java·开发语言·tomcat
Ttang231 小时前
Tomcat原理(6)——tomcat完整实现
java·tomcat