Matthes: Weiterführende Frage

Beitrag lesen

Hi nochmal,

habe nun ein wenig weiter gelesen und wollte trotzdem noch einmal nachhören, ob ich es richtig verstanden habe:

Hier noch mal ein Beispiel, bei dem sätmliche Funktionen »privat« sind (also keine richtigen Methoden am Instanzobjekt sind). Zudem habe ich alles in eine weitere selbstausführende anonyme Funktion verpackt, damit die Variablen Navigation, navigationFirst und navigationSecond nicht global werden.

http://jsfiddle.net/molily/ENNrH/1/

Beim Einbinden des .js wird die anonyme Funktion durch die beiden letzten () direkt ausgeführt. In deiner Umsetzung gibt es nun nichts globales mehr, es wird also nichts ans window-Object angehangen. Die Funktionalität für die Navigation ist gewährleistet, hat man jedoch einen Fall, wo man später noch auf NavigationFirst zugreifen möchte, ist diese Umsetzung nicht geeignet, da man keinen Zugriffspunkt mehr hat?

Ansonsten hat sich die Funktionalität nicht geändert – es zeigt nur, dass man die Kapselung noch weiter treiben kann. Diese Instanz ist schlicht ein leeres Objekt. Man kann natürlich darüber streiten, ob man in solchen Fällen noch einen Konstruktor braucht, den man mit »new« aufruft.

Hmm... was bedeutet leeres Objekt und weshalb benötigt man nicht zwingend einen new Aufruf?

Viele Grüße,
Matthias