Klammern in JavaScript-Funktionsaufrufen
In JavaScript kann der Aufruf einer Funktion ohne Klammern harmlos erscheinen, wenn keine Argumente beteiligt sind. Es besteht jedoch ein subtiler Unterschied zwischen den beiden Syntaxen:
window.onload = initAll();
window.onload = initAll;
Wenn Klammern verwendet werden:
Verwendung von Klammern in einem Funktionsaufruf, wie im erstes Beispiel: führt die Funktion sofort aus. Das Ergebnis der Funktionsausführung (falls vorhanden) wird dann der Variablen oder Eigenschaft zugewiesen, die den Funktionsaufruf empfängt, in diesem Fall window.onload. Diese Ausführung ist normalerweise unerwünscht, wenn Sie die Funktion selbst dem Listener zuweisen möchten.
Wenn Klammern weggelassen werden:
Klammern weglassen, z im zweiten Beispiel weist die Funktionsreferenz direkt der Variablen oder Eigenschaft zu. Die Funktion wird nur ausgeführt, wenn der Listener oder das Ereignis sie auslöst, wodurch das beabsichtigte Verhalten sichergestellt wird.
Zusätzlicher Hinweis:
Eine weitere Variante, auf die Sie möglicherweise stoßen, ist:
window.onload = () => initAll();
Hierbei wird eine um initAll gewickelte Pfeilfunktion verwendet. Es erstellt eine Funktion, die beim Aufruf sofort initAll aufruft. Da die äußere Funktion jedoch window.onload zugewiesen ist, stellt sie sicher, dass initAll nur beim Ladeereignis ausgeführt wird.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „window.onload = initAll();' und „window.onload = initAll;' in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!