Es gibt keine Vorteile, Sie platzieren keine Funktion innerhalb einer Variablen, die Sie einfach anders benennen.
%Vor%Diese sind bis auf eine Sache genau gleich.
Das funktioniert:
%Vor%Das funktioniert nicht:
%Vor% Der JavaScript-Interpreter wird alle function foo
vor der Ausführung vorverarbeiten und sie an den Anfang des Programms schieben, damit sie verfügbar sind, aber nicht mit var foo = function
.
Dies wird als Funktionsausdruck bezeichnet, der ein etwas anderes Verhalten als eine Funktionsdeklaration aufweist. Unter anderem verhält es sich anders, wenn es darum geht, wann man darauf verweisen kann. Zum Beispiel, wenn Sie:
%Vor%Sie können die Funktion erst aufrufen oder aufrufen, nachdem Sie zugewiesen wurden, während
%Vor%Kann irgendwo im selben Bereich referenziert werden, noch bevor es deklariert wurde. Dies liegt an einer Funktion in Javascript namens "hosting", bei der alle Funktionsdeklarationen hinter den Kulissen an den Anfang des Codeblocks verschoben werden.
Siehe auch:
Was ist der Unterschied zwischen eine Funktion Ausdruck vs Deklaration in JavaScript?
Es gibt einige Dinge, die Sie mit einem Funktionsausdruck tun können, den Sie nicht mit einer Deklaration erreichen können.
könnte sofort aufgerufen werden und der Rückgabewert in der Variablen
Wenn Sie nicht im globalen Namespace sind, können Sie das Schlüsselwort var
ausschließen, um ein globales
BEARBEITEN:
Hier ist ein Beispiel für einen sofortigen Aufruf. Sie gibt eine Funktion an die Variable myFunctionName
zurück, die Zugriff auf die Variablen und den Parameterbereich in der sofort aufgerufenen Funktion hat.
Hier ist ein Beispiel, in dem eine Funktion einen numerischen Wert beibehält. Sie können die Funktion wiederholt aufrufen, indem Sie ihr eine Zahl geben, die zur Zählung hinzugefügt wird. Es wird immer auf den aktuellen Wert Bezug genommen, so dass jeder Aufruf kumulativ ist.
Beispiel: Ссылка
%Vor%Tags und Links javascript variables function