ES5和ES6继承有何区别

ES5和ES6继承有何区别ES5 和 ES6 继承有何区别

ES5 是先新建子类的实例对象this,再将父类的属性添加到子类上。

由于父类的内部属性无法获取,导致无法继承原生的构造函数 

ES6 是先新建父类的实例对象this,然后再用子类的构造函数修饰this,使得父类的所有行为都可以继承。

ES6 允许继承原生构造函数定义子类 
class MyArray extends Array { 
    constructor(...args) { 
    super(...args); } } var arr = new MyArray(); arr[0] = 12; arr.length // 1 arr.length = 0; arr[0] // undefined 
上面代码定义了一个MyArray类,继承了Array构造函数,因此就可以从MyArray生成数组的实例。 这意味着,ES6 可以自定义原生数据结构(比如Array、String等)的子类,这是 ES5 无法做到的。 

这就使的在es6之中extends关键字不仅可以用来继承类,还可以用来继承原生的构造函数。因此可以在原生数据结构的基础上,定义自己的数据结构。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221464.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午6:02
下一篇 2026年3月17日 下午6:02


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号