Hallo zusammen!
Habe ein bisschen mit Objekten und Vererbung herumgespielt und bin dabei auf folgende 2 Probleme gestossen, sicher kann mir das hier jemand erklären :)
- Wenn ich eine Funktion deklariere, diese mit prototype erweitere und dann ein Objekt erzeuge, erhalte ich beim Aufruf dieser Methode als Return-Wert den kompletten Funktionstext der Methode zurück.
also z. B.
function Hauptklasse ()
{
this.x= new Array ("blabla", "dubidu");
}
Hauptklasse.prototype.ArrayNachString = function ()
{
var tmp = "";
for (var i=0; (i<this.x.length); i++)
{
tmp += this.x[i];
}
return tmp;
}
var TestObjekt = new Hauptklasse();
alert(TestObjekt.ArrayNachString);
->>> liefert mir den kompletten Quelltext der ArrayNachString function zurück... WARUM??? weil es eine Methode und keine Eigenschaft ist?
- Das Zweite Problem das ich habe, ist dass ich gerne in der Methode (hier ArrayNachString) die Variablen / Arrays der Hauptklasse verwenden würde, über "this" geht das aber anscheinend nicht. Gibt es so etwas wie eine "parent" Referenz oder muss ich das Parent-Objekt in diesem Fall immer über "this" zu den Methoden mitschleifen? Oder sind die Deklarationen einfach falsch? Ich würde gerne Eigenschaften deklarieren, die länger als nur eine einfache Wertzuweisung sind - wie macht man das am geschicktesten ohne jedesmal das Parentobjekt weiterreichen zu müssen?
Wäre supi-dankbar für jede Hilfestellung!
Beny