发表于: 2016-09-07 00:17:46
1 1790
今天做的事:了解原型继承,看Canvas
遇到的问题:
采用寄生组合式继承的原因是因为会出现两次调用超类型的过程
function SuperType(name){
this.name = name;
this.colors = ["red", "blue", "green"];
}
SuperType.prototype.sayName = function(){
alert(this.name);
};
function SubType(name, age){
SuperType.call(this, name);//第二次调用
this.age = age;
}
SubType.prototype = new SuperType();
//第一次调用SubType.prototype.constructor=SubType
SubType.prototype.sayAge = function(){
alert(this.age);
};
var instance1 = new SubType("Nicholas", 29);
instance1.colors.push("black");
alert(instance1.colors); //"red,blue,green,black"
instance1.sayName(); //"Nicholas";
instance1.sayAge(); //29
所以后来又出现了寄生组合式继承
但是疑惑一点
将上方组合继承的第11行改为
SubType.prototype = SuperType.prototype
这样和寄生式构造函数有什么区别呢?
评论