Наследование Javascript

Сейчас я пробую несколько разных подходов к наследованию Javascript. У меня есть следующий код:

(«заимствовано» изhttp://www.kevlindev.com/tutorials/javascript/inheritance/index.htm)

KV = {};

KV.extend = function(subClass, baseClass) {
       function inheritance() {}
       inheritance.prototype = baseClass.prototype;

       subClass.prototype = new inheritance();
       subClass.prototype.constructor = subClass;
       subClass.baseConstructor = baseClass;
       subClass.superClass = baseClass.prototype;
    }

function GridView() {
        var _ownerElement;
    }

    GridView.prototype.getOwnerElement = function() {

        return this._ownerElement;
    }

    GridView.prototype.setOwnerElement = function(ownerElement) {
        this._ownerElement = ownerElement; 
    }

    GridView.prototype.initialize = function() {
        this.setOwnerElement('test');
    }


function StreetGridView(dataURL, ownerElement) {
        StreetGridView.baseConstructor.call(this);

        StreetGridView.superClass.initialize();

        StreetGridView.superClass.setOwnerElement(ownerElement);


}

// subclass StreetGridView
KV.extend(StreetGridView, GridView);

Теперь, когда я создаю экземпляр StreetGridView, я могу без проблем вызвать getOwnerElement () для него. Все работает как положено.

ТЕМ НЕ МЕНИЕ

Когда я создаю ДРУГОЙ экземпляр, любые изменения, сделанные в экземпляре 2, отражаются обратно в экземпляре 1.

Я знаю, что это главная проблема с использованием прототипов в качестве информации об экземплярах общего ресурса. Я ломал себе голову этим утром, но удивлялся, есть ли кто-нибудь, кто мог бы указать мне правильное направление!

Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос