Was bewirkt "return function () {...}" in JavaScript?

8

Kürzlich habe ich diesen JavaScript-Code gesehen, konnte aber nicht verstehen, was er zu tun versucht.

%Vor%

Bitte erläutern Sie, was dies bewirkt!

    
Rakesh Juyal 19.10.2009, 14:12
quelle

5 Antworten

9

Er führt die Funktion aus, die f zurückgibt.
f gibt eine Funktion zurück, die eine Warnung aufruft, die die Ausgabe der Funktion, die Sie als Parameter angegeben haben, f .

BEARBEITEN: Ersetzen Sie einfach ein paar Teile, um es für das Auge zu erleichtern und Sie werden sich selbst sehen:

%Vor%     
moxn 19.10.2009, 14:15
quelle
6

Es ist nur eine übergeordnete Funktion, die in diesem Fall nicht wirklich notwendig ist.

f ist eine Funktion, die eine andere Funktion ( a genannt) verwendet, und gibt eine neu generierte Funktion zurück, die a auswertet und eine Warnmeldung mit dem Ergebnis anzeigt.

Also ruft die untere Zeile f an (in einer anonymen Funktion übergeben, die "Hello World" ausgibt), dann wird sofort die von f zurückgegebene anonyme Funktion ausgewertet, die das übergebene Argument auswertet (was Sie sehen können, gibt "Hello Welt ") und öffnet dann eine Alarmbox.

Der angegebene Code ist funktional äquivalent zu

%Vor%

Aber es gibt zwei zusätzliche Elemente, die es komplexer machen:

  1. Sie können eine beliebige Funktion übergeben, um die Zeichenfolge zu generieren, die in der Alarmbox erscheint (und diese wird langsam ausgewertet, was wichtig sein kann - zB eine Funktion zum Ausdrucken der aktuellen Zeit) / App-Status / Speicher wird verwendet, wenn die Warnung angezeigt wird und nicht wenn die Methode erstellt wurde.)
  2. Sie können eine Sperrung generieren, die diese Warnung anzeigt und sie dann weitergibt, anstatt dass die Warnung sofort ausgeführt wird.

Da jedoch keiner dieser Vorteile tatsächlich im Code-Snippet verwendet wird, kann ich sehen, warum Sie verwirrt sind.

    
Andrzej Doyle 19.10.2009 14:19
quelle
3

Es ist eine sehr komplizierte Art, eine Alarmbox zur Anzeige von "Hello world" zu bekommen. Funktionen sind erstklassige Elemente in Javascript und können als Parameter an andere Funktionen übergeben werden.

    
Paddy 19.10.2009 14:15
quelle
2

Dieser Code erstellt einen Funktionsgenerator. Die erste Funktion (deren Referenz in f gespeichert ist) akzeptiert einen Verweis auf eine andere Funktion ( a ). Dann erstellt f eine Funktion, die über den Parameter a schließt und einen Verweis auf die neue Funktion zurückgibt, die den Rückgabewert von a's aufgerufenem Ergebnis alarmiert.

Schließlich wird dieses Chaos mit einer Inline-Funktion aufgerufen und sein Ergebnis wird sofort aufgerufen (mit der abschließenden öffnenden und schließenden Klammer am Ende).

    
Andrew Hare 19.10.2009 14:18
quelle
0

f erhält eine Funktion, die eine Funktion als Argument akzeptiert, aufruft und ihren Rückgabewert in alert anzeigt. Dann wird f mit einer Funktion aufgerufen, die die Zeichenkette "Hello World" zurückgibt, wenn sie aufgerufen wird, was dazu führt, dass Hello World in einer Warnung angezeigt wird.

    
Sinan Ünür 19.10.2009 14:19
quelle

Tags und Links