Hallo alle,
Torsten schrieb im Thread "JavaScript Probs":
"Die Frage ist eben ob das parent.parent geht ?!"
Das bringt mich auf den Gedanken, mal ein bisschen was zu OO und zur Notation hier zu schreiben.
parent.parent sieht irgendwie verwirrend aus, nicht wahr?
Es ist aber ganz logisch.
Zur Erinnerung: es ging um Frames.
Von einem Frame aus spreche ich mit "parent" das uebergeordnete Frameset an. Hier ist das Wort "parent" auch recht treffend, wenn man sich das mal veranschaulichen will - gar nicht schlecht, an "Eltern" oder "Erzeuger" in dem Zusammenhang zu denken.
---8><--------------><8---
Einschub (ueberlesen, wer eine Idee von OO hat):
Hinter dem Punkt (z.B. self.parent) notiert man die Eigenschaft des Ausgangsobjektes, greift auf diese zu.
Hier heisst das, auf die Eigenschaft "parent" - sprich "Erzeuger" von "self".
Man hat also mit "self.parent" den "Erzeuger" im Zugriff.
---8><--------------><8---
self.parent ist ein window-Objekt, naemlich das uebergeordnete Frameset.
Wenn sich das nun aber auch wieder in einem Frameset befindet? Dann hat es das natuerlich einen "Erzeuger"
self.parent.parent
Was, wenn das immer noch nicht die oberste Ebene repraesentiert, sondern immer noch in einem Frameset steckt?
self.parent.parent.parent
Was, wenn ...? Ja, dann gibt es auch noch das hier:
self.parent.parent.parent.parent
Was, wenn...?
Auch wenn es eigenarig aussieht, es ist korrekt und sogar logisch :-)
Noch ein kleines Beispiel?
Ich probier's mal mit einem aus dem RL (nicht hauen bitte, sowas ist immer ein bisschen krampfig und ein bisschen erhellend):
Ihr kennt vielleicht diese russischen Puppen, bei denen immer eine in der anderen steckt - Matrjoschkas.
- Eine Puppe (Objekt), die wieder Puppe(n) enthaelt, soll "matrjoschka" heissen.
- Eine Puppe (Objekt), die keine weitere enthaelt (leer ist) soll "hohl" heissen.
- Wie kommt man von aussen an die innerste, wenn die die siebente insgesamt ist?
matrjoschka.matrjoschka.matrjoschka.matrjoschka.matrjoschka.matrjoschka.hohl
Und jetzt hoere ich auf mit meinem sonntaeglichen "Vortrag" :-)
Christine