首页 > 代码库 > ES5和ES6中的继承
ES5和ES6中的继承
看到一篇写的非常好的关于js继承的文章,其中对构造函数、原型、实例之间的关系的描述十分透彻,故转载作者文章以随时学习,并供大家共同进步!
ES5
ES5中的继承,看图:
1 function Super() {} 2 3 function Sub() {} 4 Sub.prototype = new Super(); 5 Sub.prototype.constructor = Sub; 6 7 var sub = new Sub(); 8 9 Sub.prototype.constructor === Sub; // ② true10 sub.constructor === Sub; // ④ true11 sub.__proto__ === Sub.prototype; // ⑤ true12 Sub.prototype.__proto__ == Super.prototype; // ⑦ true
ES5中这种最简单的继承,实质上就是将子类的原型设置为父类的实例。
ES6
ES6中的继承,看图:
1 class Super {} 2 3 class Sub extends Super {} 4 5 var sub = new Sub(); 6 7 Sub.prototype.constructor === Sub; // ② true 8 sub.constructor === Sub; // ④ true 9 sub.__proto__ === Sub.prototype; // ⑤ true10 Sub.__proto__ === Super; // ⑥ true11 Sub.prototype.__proto__ === Super.prototype; // ⑦ true
所以
ES6和ES5的继承是一模一样的,只是多了class
和extends
,ES6的子类和父类,子类原型和父类原型,通过__proto__
连接。
原文链接:ES5和ES6中的继承
感谢作者:@KeenWon
ES5和ES6中的继承
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。