私は次のコードを持っている:それは出力ですプロトタイプを変更しても、以前に作成されたオブジェクトに影響しないのはなぜですか?
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
であるという事実によって引き起こされたのでしょうか? 2つのオブジェクトのコンストラクタが等しくない場合、他のサークルはありますか?
追加質問:なぜ2つの文字列が印刷されたのですか?undefined
(クロム)時
'a1'は' c'ですか? –
申し訳ありませんが、私の間違い。修正済み;) –
あなたはChromeにいますか?そうであれば、 'console.log(undefined)'はログに記録された 'undefined'と返された' undefined'の二つを記録します。 – pimvdb