Struppi: Beispiel-Code verstehe ich nicht

Beitrag lesen

  1. Wie funktioniert der folgende Funktionsaufruf? Welche Bedeutung hat der ':'? Auch hier hat die Funktion keinen Namen?

Dir ist offensichtlich die literale Schreibweise (heißt das wirklich so?) fremd und du kennst keine Objekte.

Du kannst Objekte mit {} definieren (und Arrays mit [] ).

var obj = {};

entspricht:

var obj = new Object();

Der Sinn ist, dass du diesen Variabeln Attribute geben kannst (und einen eigenen Namespace definieren kannst, damit vermeidest du Namenskonflikte). Ein solches Objekt ist z.b. window, oder window.document (aber auch ein Array ist ein Object), in der kurzschreibweise sieht das so aus:

var obj = {
attribut: 'test'
};

alert(obj.attribut);

entspricht:
var obj = new Object();
obj.attribut = 'test';

Der Vorteil, du kannst mehrere Attribute auf einmal zuweisen:

var obj = {
attribut_1: 'test 1',
attribut_2: 'test 2',
...
};

Du kannst den Attributen aber auch Funktionen zuweisen:

var obj = {
funktion: function(param) { alert('Hallo ' + param); };
};

obj.funktion('Welt');

Das Konstrukt:

(function() { .... } ) ()
(in z.b. http://trimpath.com/project/attachment/wiki/TrimPathDownload/query.js?format=txt

Ist eine anonyme (also Namenslose) Funktion, bzw. ein closure steht ja auch da:

// Using a closure to keep global namespace clean.

Sie rufen also eine anonyme Funktion zur Initialisierung auf, dadurch stehen alle temporären Variabeln und Funktionen im Kontext der Funktion, also bleibt window "sauber". Lediglich window.TrimPath wird um  die nötigen Eigenschaften und Funktionen erweitert.

Struppi.