【发布时间】:2011-09-25 00:49:52
【问题描述】:
我遇到了这个问题……B是基类,A是派生类……事件虽然A是从B派生的,但是A的各个对象都指向B的同一个对象。
我知道我已将 B 的对象分配给 A 的原型,以使 A 成为 B 的子对象。
但是A的不同对象,它们应该有不同的地址空间来保存变量,对吧?你能纠正这个吗?
function B(){
this.obj = {};
}
function A(){
}
A.prototype = new B();
var a = new A();
var b = new A();
var c = new A();
console.log(a.obj == b.obj); //prints true
console.log(a.obj === b.obj); //prints true
a.obj.name = "stackoverflow";
console.log(b.obj.name); //prints stackoverflow
我应该在此代码中进行哪些更改,以便得到以下结果。
a.obj === b.obj //must be false
a instanceof A; //must be true
a instanceof B; //must be true
【问题讨论】:
-
你到底在问什么?您发布的代码有什么问题或预期行为有什么不同?
-
请看一下,我已经更正了问题...
标签: javascript oop function-prototypes