我想知道,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 ?
我做了一些研究,但找不到正确的解释。