У меня есть эта проблема ... B - базовый класс, а A - производный класс ... Событие, хотя A является производным от B, различные объекты A указывают на один и тот же объект B.
Я знаю, что назначил объект B прототипу A, чтобы сделать A потомком B.
Но разные объекты А должны иметь разное адресное пространство для хранения переменных, верно? Кто-нибудь может это исправить?
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