Klammern in Funktionsdeklarationen vs. Aufrufen
In JavaScript erscheint der Unterschied zwischen Funktionsdeklarationen und -aufrufen in ihrer Syntax. Während Funktionsdeklarationen mit geschweiften Klammern enden, enden Funktionsaufrufe mit Klammern.
Betrachten Sie das folgende Beispiel:
var myFunction = function() { setTimeout(myFunction, 1000); } myFunction();
Hier erwartet die Funktion setTimeout eine Funktionsreferenz als Argument. Wenn Sie myFunction schreiben, verweisen Sie auf die Funktion selbst. Im Gegensatz dazu ruft myFunction() die Funktion tatsächlich auf.
Obwohl dies einfach erscheint, gibt es Ausnahmen. setTimeout kann auch eine Funktion akzeptieren, die eine Funktion zurückgibt, wie im folgenden Code:
function myFunction() { return function() { alert("ohai"); } } // or const myFunction = () => () => alert("ohai");
In diesem Szenario würde setTimeout(myFunction(), 1000) Folgendes tun:
Dadurch wird effektiv eine Warnung geplant, die jede Sekunde angezeigt wird.
Der Hauptunterschied besteht daher darin, dass Sie beim Weglassen von Klammern auf das Funktionsobjekt selbst verweisen. Wenn Sie Klammern einfügen, rufen Sie die Funktion auf. Dies gilt für Funktionsdeklarationen wie var myFunction = function() { ... } und Funktionsausdrücke wie const myFunction = () => { ... }.
Das obige ist der detaillierte Inhalt vonWann sind Klammern in JavaScript-Funktionsaufrufen wichtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!