Was ist der Unterschied zwischen Fenster.onload = init(); und window.onload = init;
Von dem, was ich gesammelt haben, die ehemalige weist den tatsächlichen Wert von was auch immer, die Funktionen return-Anweisung wäre die onload-Eigenschaft, während das letztere tritt die eigentliche Funktion, und wird ausgeführt, nachdem das Fenster geladen hat. Aber ich bin mir noch nicht sicher. Vielen Dank für alle, die Sie ausarbeiten kann.
- Ja, das ist genau der Unterschied.
- Da Sie hat die korrekte definition, von der wir nicht wirklich wissen, was du dir nicht sicher bist. Pflege zu erarbeiten?
- Gut, das Buch lese ich gerade sagte, es ist ein deutlicher Unterschied, aber für mich erfüllt er genau das gleiche. Die Funktion läuft nach dem laden der Seite, was ist der Punkt, der mit ein?
- OP will eine Antwort von "ja" oder "Nein", und wenn Nein, warum.
Du musst angemeldet sein, um einen Kommentar abzugeben.
weist das onload-Ereignis auf das, was ist zurückgegeben aus der Funktion init, wenn es ausgeführt wird.
init
ausgeführt werden sofort, (wie, jetzt, nicht, wenn das Fenster fertig ist laden) und das Ergebnis zugewiesen wird, umwindow.onload
. Es ist unwahrscheinlich, dass Sie jemals wollen, aber wäre das folgende gültig:tritt das Ereignis onload die Funktion init. Wenn der onload-event feuert, wird die init-Funktion wird ausgeführt.
window.onload = init()
ist, wenninit()
gibt eine weitere Funktion. Wenn Sie nur wollen, um eine Funktion auszuführen, dann sofort direkt aufrufen. Der springende Punkt bei der.onload
(oder.onclick
oder jedes andere event handler), ist, dass Sie es eine Funktion Verweis so, dass die Funktion ausgeführt werden kann, an einem gewissen Punkt in der Zukunft, wenn das Ereignis Auftritt.weist den Wert der foo, um die onload-Eigenschaft des window-Objekts.
wird der Wert zurückgegeben, indem foo (), um die onload-Eigenschaft des window-Objekts. Ob dieser Wert aus einer return-Anweisung oder nicht, hängt davon ab foo, aber es würde Sinn machen für Sie, um zurückzukehren, eine Funktion (erfordert eine return-Anweisung).
Wenn das load-Ereignis tritt auf, wenn der Wert des Fenster.onload ist eine Funktionsreferenz, dann Fenster event-handler aufgerufen wird.
Guten Antworten, noch eine Sache hinzufügen:
Browser Laufzeiten ignorieren, nicht-Objekt (
string, number, true, false, undefined, null, NaN
) den Werten der DOM-Ereignisse wie die Fenster.onload. Also, wenn Sie schreibenwindow.onload
= 10 oder irgendwelche der oben erwähnte Wert-Typen (einschließlich der hybrid -string
) die Veranstaltung wird bleibennull
.Was ist mehr lustig, dass die event-Handler, wird erhalten Sie jedes Objekt-type-Werte, auch
window.onload = new Date
ist ein ziemlich gültigen code, wird aufgefordert, das aktuelle Datum, wenn Sie sich diewindow.onload
. 🙂 Aber sicher, dass nichts passieren wird, wenn diewindow.load
event feuert.Also, immer weisen Sie eine Funktion zu jedem event in JavaScript.