Das () nach einer Funktion bedeutet, die Funktion selbst auszuführen und ihren Wert zurückzugeben. Ohne es haben Sie einfach die Funktion, die als Rückruf nützlich sein kann.
%Vor% Die Funktion addEventListener erwartet eine Funktion oder ein Objekt, das EventListener
als zweites Argument implementiert, nicht ein Funktionsaufruf.
Wenn die ()
einem Funktionsnamen hinzugefügt werden, ist dies eher ein Funktionsaufruf als die Funktion selbst.
Bearbeiten: Wie in den anderen Antworten und in den Kommentaren angegeben, ist es möglich, Funktionen in Javascript zurückzugeben.
Also, für etwas Interessantes könnten wir Folgendes versuchen. Von der ursprünglichen myAlert
können wir es ein wenig ändern, um abhängig von den Parametern eine andere Nachricht zurückzugeben:
Beachten Sie, dass die Funktion tatsächlich eine Funktion zurückgibt. Um diese Funktion aufzurufen, wird daher die zusätzliche ()
benötigt.
Ich habe ein wenig HTML und Javascript geschrieben, um die obige Funktion zu benutzen. (Bitte entschuldigen Sie mein unsauberes HTML und Javascript, da es nicht meine Domäne ist):
%Vor% Es werden zwei Schaltflächen angezeigt, von denen jede die Funktion myAlert
mit einem anderen Parameter aufruft. Sobald die Funktion myAlert
aufgerufen wird, gibt sie selbst ein weiteres function
zurück, das mit einem zusätzlichen Klammersatz aufgerufen werden muss.
Das Endergebnis ist, wenn Sie auf Button1
klicken, wird ein Meldungsfeld mit der Nachricht Message: Clicked Button1
angezeigt, während das Klicken auf Button2
ein Meldungsfeld mit dem Namen Message: Clicked Button2
anzeigt.
mit myAlert()
gibt hier den zurückgegebenen Wert der Funktion, nicht die Funktion selbst.
Bedenken Sie Folgendes:
%Vor% Der Alarm wird den von der Funktion bob
zurückgegebenen Wert verwenden.
Wenn Sie zusätzliche Parameter in addEventListener übergeben möchten, versuchen Sie Folgendes:
%Vor%javascript verwendet erstklassige Funktionen und kann daher als Parameter an Funktionen übergeben werden, was die addEventListener- und attachEvent-Methoden erwarten. Hoffe das hilft.
Tags und Links javascript syntax