次のコードがあります。
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
持っていました。これは が に等しくなく、それぞれが独自の を持っていたという事実によって引き起こされたというのは正しいですか? 2 つのオブジェクトのコンストラクターが等しくない可能性がある他の循環はありますか?b
c
a.constructor
c.constructor
prototype
追加の質問: なぜ 2 つの文字列が印刷されたのundefined
ですか? (クロム)