JavaScript-Vorteil durch Platzieren von Funktionen in Variablen?

8

Ich habe kürzlich Code-Beispiele gesehen, die Funktionen in Variablen platzieren und dann die Funktionen wie normal aufrufen.

Wie in:

%Vor%

Ich bin mir sicher, dass es bei fortgeschritteneren Szenarien viele Vorteile gibt, aber ich bin nur neugierig.

    
Qcom 16.02.2011, 23:06
quelle

3 Antworten

12

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 .

    
Josh K 16.02.2011, 23:11
quelle
4

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?

Ссылка

    
Matt King 16.02.2011 23:16
quelle
2

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

  • gespeichert werden
  • Wenn Sie nicht im globalen Namespace sind, können Sie das Schlüsselwort var ausschließen, um ein globales

  • zu erstellen

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.

%Vor%

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%     
user113716 16.02.2011 23:12
quelle

Tags und Links