У меня возникла эта проблема ... 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