Проблема с расширением класса с помощью прототипа объекта javascript

У меня возникла эта проблема ... 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
6
задан Software Enthusiastic 29 June 2011 в 10:29
поделиться