ES5中调用new的操作: 1.先创建一个新的对象obj = {}
2.给新对象obj设置原型属性 obj.__proto__ = A.prototype;
3.给新对象设置实例属性 A.constructor.apply(obj,args),将属性和方法实例化,constructor中的this指向的是新创建的obj对象
4.返回构造函数的结果,obj / this / 其他引用对象;
ES6继承:
主要是通过extends / class 的语法糖(原本已经有的功能,实现理解性和逻辑性更强)
//class的模板 class Child extends Father{ constructor(x,y){ super(); //必须得先调用一下父类构造函数,实现继承父类的实例属性,实例属性独有 //实例属性和方法、 this.y = y; this.x = x; } static staticFunction(){ //静态方法 只能类调用 } print(){ //类的原型对象的方法,原型对象方法中的this是运行时才确定的。 return this.x; } }
原文地址:https://www.cnblogs.com/panjingshuang/p/11906514.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。