首页 > 代码库 > ES5和ES6中的继承
ES5和ES6中的继承
Javascript中的继承一直是个比较麻烦的问题,prototype、constructor、__proto__在构造函数,实例和原型之间有的复杂的关系,不仔细捋下很难记得牢固。ES6中又新增了class和extends,和ES5搅在一起,加上平时很少自己写继承,简直乱成一锅粥。不过还好,画个图一下就清晰了,下面不说话了,直接上图,上代码。
- function Super() {}
- function Sub() {}
- Sub.prototype = new Super();
- Sub.prototype.constructor = Sub;
- var sub = new Sub();
- Sub.prototype.constructor === Sub; // ② true
- sub.constructor === Sub; // ④ true
- sub.__proto__ === Sub.prototype; // ⑤ true
- Sub.prototype.__proto__ == Super.prototype; // ⑦ true
ES6
ES6中的继承,看图:
- class Super {}
- class Sub extends Super {}
- var sub = new Sub();
- Sub.prototype.constructor === Sub; // ② true
- sub.constructor === Sub; // ④ true
- sub.__proto__ === Sub.prototype; // ⑤ true
- Sub.__proto__ === Super; // ⑥ true
- Sub.prototype.__proto__ === Super.prototype; // ⑦ true
ES5和ES6中的继承
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。