我有以下代碼:爲什麼改變原型不會影響以前創建的對象?
var A = function() {};
var a = new A();
var b = new A();
A.prototype.member1 = 10;
A.prototype = {}
var c = new A();
console.log(a.member1);
console.log(a.constructor === b.constructor);
console.log(a.constructor === c.constructor);
console.log('---------');
console.log(c.member1);
它的輸出是:
10
true
false
---------
undefined
undefined
的a
和b
原型沒有改變,c
有一個新的。我是對的,這是由於a.constructor
不等於c.constructor
,並且他們每個人都有自己的prototype
?當兩個對象的構造函數可能不相等時,還有其他方法嗎?
額外的問題:爲什麼會打印兩個undefined
字符串? (鉻)
'a1'應該是'c'嗎? –
對不起,我的錯。更正;) –
你在鉻?如果是這樣,'console.log(undefined)'會記錄兩件事:記錄的undefined和返回的undefined。 – pimvdb