Heim > Web-Frontend > js-Tutorial > JavaScript-Funktionsaufrufe: Leere Klammern – Sofortiger Aufruf oder Referenzzuweisung?

JavaScript-Funktionsaufrufe: Leere Klammern – Sofortiger Aufruf oder Referenzzuweisung?

Susan Sarandon
Freigeben: 2024-12-08 13:56:11
Original
335 Leute haben es durchsucht

JavaScript Function Calls:  Empty Parentheses – Immediate Invocation or Reference Assignment?

JavaScript-Funktionsaufruf: Klammern sind wichtig

Der Aufruf einer Funktion mit leeren Klammern oder ohne Klammern kann für Funktionen ohne Argumente belanglos erscheinen. Eine genauere Betrachtung offenbart jedoch einen subtilen Unterschied.

Sofortiger Aufruf vs. Referenzzuweisung

Betrachten Sie die folgenden zwei Beispiele:

window.onload = initAll();
Nach dem Login kopieren
window.onload = initAll;
Nach dem Login kopieren

1 . Sofortiger Aufruf:

Im ersten Beispiel rufen die leeren Klammern die Funktion initAll() sofort auf und der Rückgabewert wird window.onload zugewiesen. Normalerweise ist dies nicht das gewünschte Verhalten, da initAll ausgeführt werden sollte, wenn das Onload-Ereignis auftritt.

2. Referenzzuweisung:

Im zweiten Beispiel wird die initAll-Funktion selbst window.onload zugewiesen. Dies bedeutet, dass die Funktion erst ausgeführt wird, wenn das Ladeereignis ausgelöst wird. Dieser Ansatz stellt sicher, dass der Event-Handler korrekt eingerichtet ist.

Funktionen als Objekte

In JavaScript sind Funktionen erstklassige Objekte. Dies bedeutet, dass sie in Variablen gespeichert, als Argumente übergeben und als Eigenschaften zugewiesen werden können. Aus diesem Grund ist die folgende Syntax gültig:

window.onload = () => initAll();
Nach dem Login kopieren

In diesem Fall wird eine anonyme Funktion erstellt, die beim Aufruf sofort initAll() aufruft. Die Referenz dieser äußeren Funktion ist jedoch weiterhin window.onload zugewiesen, sodass der Ereignishandler auf das Ladeereignis wartet, um die Ausführung beider Funktionen auszulösen.

Das obige ist der detaillierte Inhalt vonJavaScript-Funktionsaufrufe: Leere Klammern – Sofortiger Aufruf oder Referenzzuweisung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage