Philipp Hasenfratz: prototype und return werte

Beitrag lesen

Halihallo

Habe ein bisschen mit Objekten und Vererbung herumgespielt und bin dabei auf folgende 2 Probleme gestossen, sicher kann mir das hier jemand erklären :)

Hab durch deine Frage gleich selber noch was gelernt :-)

->>> liefert mir den kompletten Quelltext der ArrayNachString function zurück... WARUM??? weil es eine Methode und keine Eigenschaft ist?

Eine Methode ist _nie_ eine Eigenschaft. Das sind zwei vollkommen verschiedene Dinge!

Dein Fehler war: Die Zeichen '()' hinter ArrayNachString zu setzen, also:

alert(TestObjekt.ArrayNachString());

statt

alert(TestObjekt.ArrayNachString);

...

so einfach und doch so kompliziert kann es sein :-)
JS fordert beim aufruf _jeder_ Funktion ein explizites () für die Parameter, ansonsten wird der Code der Funktion referenziert!

  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.

Sollte aber, sonst versteh ich kein OOP mehr... Entweder war das ein Folgefehler, oder ich verstehe deine Aussage nicht ganz.

Gibt es so etwas wie eine "parent" Referenz oder muss ich das Parent-Objekt in diesem Fall immer über "this" zu den Methoden mitschleifen?

Nein, es gibt kein Parent-Objekt (zumindest in deinem Fall nicht). Die Daten der Klassen-instanz werden über this angesprochen.
Ein Parent-Objekt im weiten Sinn gibt es erst bei Vererbungen => Superklassen. Diese Daten werden dann aber in das 'this' "importiert". Das ist der ganze Sinn hinter Klassenvererbungen.

Oder sind die Deklarationen einfach falsch?

Nö. Die sind ganz OK. Aber das () hat dich aufgehängt :-)

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?

Wie meinst du das? - Kannst mir mal sagen, was du machen willst und wie dein Interface zur Klasse aussieht.

Viele Grüsse

Philipp