new
JavaScriptで演算子を使用してオブジェクトを作成するときの変数のスコープはありますか?
function A(){
this.a = 1; // instance property
}
function B(){
this.a = 3; // instance property
}
ケース 1 :了解しました
// assign again prototype a property as 2
A.prototype.a = 2 ;// prototype property
var obj = new A();
console.log( obj instanceof A );
console.log( obj.a == 1 );
ケース 2 : A コンストラクターを B 参照に変更
A.prototype.constructor = B;
A.prototype.a = 2 ;// prototype property
var obj = new A();
console.log( obj instanceof B ); // false, as I expected
console.log( obj.a == 1 ); // still 1 why ?
ケース 3 : 継承スコープ
A.prototype = new B();
A.prototype.a = 4 ;// prototype property
var obj = new A();
console.log( obj instanceof B ); // true , as I expected
console.log( obj.a == 1 ); // still 1 why ?
いくつかの調査を行いましたが、これについての正しい説明が見つかりませんでした。