1绰姻、原型的動態(tài)性
重新原型后切斷了 現(xiàn)有原型與任何之前實(shí)例對象之間的關(guān)系;它引用的還是之前的原型
function Person(){};
?person1 = new Person();
? Person.prototype = {
? ? ? ? ? name: 'Larmber',
? ? ? ? ? sayName: function(){
? ? ? ? ????????????console.log(this.name)
? ? ? ? ? ?}
? }
person1.sayName()? //報錯? 因為指向的還是之前的原型
2、原型鏈
function SubperType(){
? ? this.color = ["red","green"];
}
function SubType(){};
SubType.prototype = new SubperType();
var a = new SubType();
a.color.push("red");
var b = new SubType();
console.log(b.color);? //red, green red
原型鏈問題: 實(shí)例共享 引用類型值
2、借用構(gòu)造函數(shù)
使用? apply? / call
修改以上代碼:
function SubType(){
? ? SubperType.apply(this)
}
借用構(gòu)造函數(shù)問題: 方法都在函數(shù)中,所以無法復(fù)用