Ich bin im Moment ein paar verschiedenen Ansätze zur Javascript Erbe versuchen. Ich habe den folgenden Code:Javascript Erbe
('ausgeliehen' von 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);
Nun, wenn ich eine Instanz von StreetGridView schaffen, kann ich getOwnerElement() aufrufen, auf das kein Problem. Alles funktioniert wie erwartet.
JEDOCH
Wenn ich eine andere Instanz zu erstellen, werden alle zu Beispiel 2 vorgenommenen Änderungen zurück in Beispiel 1
Ich weiß, das ist das Hauptproblem bei der Verwendung von Prototypen als Anteil Instanz Informationen wider. Ich habe mir heute Morgen den Kopf zerbrochen, aber ich habe mich gefragt, ob da draußen jemand ist, der mich in die richtige Richtung weisen könnte!
Danke
hier beantwortet: http://stackoverflow.com/a/12816953/885464 –