的代碼如下:javascript函數這和原型
function A() {
this.name = "kl";
this.obj2 = { a: 1 };
}
A.prototype.city = "china";
A.prototype.obj = {age: 30};
var a = new A();
var b = new A();
a.name = "kobe";
a.obj.age = 20;
a.city = "American"
a.obj2.a = 30;
console.log(b.name); // k1
console.log(b.city); // why china ?
console.log(b.obj); // when b.city = china, why b.obj = {age: 20}
console.log(b.obj2); // {a: 1}
我的看法是,A和B都有自己的這一點,所以你如何修改這個[屬性]你不能改變自己的this.value;
property declare so share property?是對的 ? 但是當obj是變化時會影響b.obj, 當城市變化不會影響b.city?
這是很少,你將要使用的原型機制,分享價值的情況下在實例中。它會導致難以理解的行爲,比如你發現的行爲。將原型視爲**方法**在實例間共享的存儲庫是比較安全的。 – 2016-12-16 04:43:21