function inherit(Target, Origin) {
function F() {
}//定义一个构造函数 用来连接
F.prototype = Origin.prototype;// F的 原型 与 要继承的 构造函数的 原型 引用一致
Target.prototype = new F();//这样 Target实例化的对象的__proto__ = F.prototype
Target.prototype.constuctor = Target;// 将Target 原型的 constuctor 修改为自身
Target.prototype.uber = Origin.prototype;//这样 我们可以通过 Target实例化的对象的__proto_.uber 找到 对象真实继承的原型
}
function Father() {
}
Father.prototype.lastName = 'wang';
function Son() {
}
inherit(Son, Father);
console.log(new Father());
console.log(new Son());
1.如需转载本站原创文章,请务必注明文章出处并附上链接,非常感谢。
2.本站用于记录个人 工作、学习、生活,非商业网站,更多信息请 点击这里
下一篇: VUE生命周期钩子函数的知识点整理
作者你好,对于这个继承的写法,之前我看yahoo的YUI库里面也是这么写的,它那个还把function F() {}放到了闭包里面,形成了一个私有化的变量,但是有个小问题就是
这个也是Brannua提出的~
直接改变原型链的指针的这种写法,似乎无法继承父类中的属性,比如在 Origin 中,function Origin(name) { this.name = name; },name 属性似乎就无法被继承,请教一下如何优化呢?