function Super(){
this.colors = ['c','a','b'];
this.print = function(){
console.log(this.colors);
}
}
Super.prototype.prototypePrint=function(){
console.log(this.colors);
}
function Sub(){
Super.call(this);
}
var instance1 = new Sub();
instance1.colors.push('v');
instance1.print();//c,a,b,v
console.log(instance1.colors); //c,a,b,v
instance1.prototypePrint();//instance1.prototypePrint is not a function
var instance2 = new Sub();
instance2.print();//c a b
console.log(instance2.colors);//c a b
instance2.prototypePrint();//instance1.prototypePrint is not a function
//原型鏈式--原型鏈式繼承--原型鏈繼承
function Super(){
this.colors = ['c','a','b'];
this.print = function(){
console.log(this.colors);
}
}
Super.prototype.prototypePrint=function(){
console.log(this.colors);
}
function Sub(){
}
Sub.prototype = new Super();
var instance1 = new Sub();
instance1.colors.push('v');
console.log(instance1.colors);//c,a,b,v
instance1.prototypePrint();//c,a,b,v
var instance2 = new Sub();
console.log(instance2.colors);//c a b v
instance2.prototypePrint();//c a b v
function Super(){
this.colors = ['c','a','b'];
}
Super.prototype.print = function(){
console.log(this.colors);
};
Super.prototype.prototypePrint=function(){
console.log(this.colors);
}
function Sub() {
Super.call(this);//
}
Sub.prototype = new Super();//
Sub.prototype.constructor = Sub;
var instance1 = new Sub();
instance1.colors.push('v');
console.log(instance1.colors); //a b c v
instance1.prototypePrint(); //a b c v
var instance2 = new Sub();
console.log(instance2.colors); //a b c
instance2.prototypePrint(); //a b c
//Sub.prototype = new Super();這一句把super的color數組共享到sub的原型上了。
//Super.call(Sub)這一句把super的color數組複製到sub上了
//子類實例將子類原型上的屏蔽了