ChrisB: RE: Welcher Event ist der Richtige

Beitrag lesen

Hi,

document.onload = init();

das Weglassen der Klammern funktioniert tatsächlich. Kann mir auch erklärt werden, warum ? Mir fehlt da scheinbar ein Zusammenhang..

init ist die Referenz auf die Funktion. Saemtliche Objekte - und auch Funktionen sind Objekte - werden in Javascript "by reference" uebergeben, nur skalare Werte (bspw. Textliterale, Zahlen) "by value". (by reference uebergibt also nur eine Art "Zeiger" auf das Objekt, "by value" wird hingegen eine Kopie des Wertes uebergeben.)

init() ruft die Funktion zu exakt dem Zeitpunkt auf, wo diese Anweisung steht.
document.onload = init();
bewirkt also, dass erst mal die Funktion aufgerufen wird - und dann ihr Rueckgabewert document.onload zugewiesen wird.

document.onload = init;
hingegen weist dem Event die Funktionsreferenz zu - damit weiss dein Browser also, wenn dieser Event eintritt, soll er den Code ausfuerhen, auf den der Funktionsname init referenziert.

MfG ChrisB