本人刚开始学习js,在《js高程》上看到了寄生组合式继承这一节,但是对书上给出的代码不太明白。
我理解的是:寄生组合式继承是为了避免组合继承中实例属性和原型对象中属性重复的问题,它使用借用构造函数的方法继承父类构造函数中的属性,使用原型式继承的方法继承父类的原型对象。
这是书上的代码:
function inheritPrototype(SubType,SuperType){
var pro = Object.create(SuperType.prototype);
pro .constructor = SubType;
SubType.prototype = pro ;
}
但是,它和下面的函数有什么区别呢?
function inheritPrototype(SubType,SuperType){
SubType.prototype = SuperType.prototype;
SubType.prototype.constructor = SubType;
}
不太明白为什么要使用原型式继承的方法继承父类的原型,原型式继承不就是一个浅复制吗?这和直接赋值有什么区别呢?
智慧大石
倚天杖
相关分类