Hallo,
Worin unterscheiden sich
- var Navigation = { ... }
das erzeugt ein Objekt mit dem Namen Navigation und den Eigenschaften und Werten, die du in der geschweiften Klammer definierst.
- function Navigation(Argumente) { ... }
Das ist eine Funktion.
Du willst jetzt nicht wirklich fragen, was der Unterschied zwischen einem Objekt und einer Funktion (oder Methode) ist? Oder war dir einfach die Objekt-Notation unter 1. nicht geläufig?
Von 1. kann man immer nur ein Objekt gleichzeitig haben, oder?
Nein. Du kannst z.B. ein Array gleichartiger Objekte haben, oder mehrere gleichartige Objekte mit verschiedenen Namen.
Von zweitem kann man durch var nav = new Navigation(Argumente) soviele erzeugen wie man benötigt? Gibt es dabei etwas bestimmtes zu beachten?
Ach, daher weht der Wind. Ja, dann betrachtest du die Funktion quasi als Konstruktor, der in Verbindung mit dem new-Operator neue Objekte erzeugt. Das geht auch.
Ich möchte den Code einmal bei Fiddle hinterlegen und deine Meinung dazu hören. Wenn ich es richtig verstanden habe ist var that = this nötig, sobald man eine weitere (innere) Funktion betritt, da der Kontext von this dann auf window steht?
Nein. Wenn du eine Funktion als Konstruktor aufrufst, ist this eine Referenz auf das neue Objekt, das beim Eintritt in die Funktion noch keine Eigenschaften hat. Oder habe ich nicht verstanden, was du meinst?
So long,
Martin
Dem Philosoph ist nichts zu doof.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(