Beny: prototype und return werte

Beitrag lesen

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 :)

  1. 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?

  1. 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