之前我一直在疑問(wèn)
function DOG(name){this.name = name;}
DOG.prototype = { species : '犬科' };
var dogA = new DOG('大毛');
var dogB = new DOG('二毛');
alert(dogA.species); // 犬科
alert(dogB.species); // 犬科
為什么這樣是可行的,而為什么不行
function DOG(name){this.name = name;}
var dogA = new DOG('大毛');
var dogB = new DOG('二毛');
DOG.prototype = { species : '犬科' };
alert(dogA.species); // 犬科
alert(dogB.species); // 犬科
然后今天看別的資料偶然發(fā)現(xiàn),創(chuàng)建實(shí)例的時(shí)候?qū)?shí)例的原型進(jìn)行賦值引用變量,如果之后我修改構(gòu)造器的原型的屬性可以對(duì)實(shí)例有效果,但是如果直接替換了原型對(duì)象,則已經(jīng)生成的實(shí)例不再受構(gòu)造器的原型的影響。
如果用下面這段代碼 可以更好的理解
var a = {name:'123'};
var b = a;
a = {};
a.age = 123;
console.log(b.age)// undefined