Warum würde das Zuordnen einer Funktion zu einer Variablen sich von der Definition unterscheiden? [Duplikat]

9

Ich bin gerade dabei, eine neue Funktion zu unserer wachsenden Liste von globalen hinzuzufügen (seufzen) und bemerkte, dass der letzte Benutzer eine Variablenzuweisung über einfache function a(){} verwendet hat.

%Vor%

Ich habe einen Test erstellt, um zu sehen, ob es einen Unterschied gemacht hat. Es tut, aber ein Konflikt. (chrome favorisiert die einfache Funktion, während firefox die Variablenzuweisung).

Firefox : Funktion create (90 +% langsamer) / Create mit variabler Zuweisung (am schnellsten)

Chrome : Funktion erstellen (am schnellsten) / Erstellen mit variabler Zuweisung (70 +% langsamer)

Ich verstehe, es ist trivial, aber gibt es einen Grund für die Diskrepanz und gibt es eine bevorzugte Möglichkeit, dies zu tun?

    
Phil Cooper 28.05.2013, 14:44
quelle

1 Antwort

1

Ein Unterschied zwischen den beiden ist, wie sie sich im Browser verhalten.

Das Definieren der Funktion im ersten Fall funktioniert unabhängig davon, wo im Code sie aufgerufen wird. Im zweiten Fall, wenn Sie versuchen, es aufzurufen, bevor es definiert ist, wird ein Fehler ausgelöst.

Diese Antwort erklärt im Detail: Was ist der Unterschied zwischen einem Funktionsausdruck und einer Deklaration in JavaScript?

Was also vorzuziehen ist, hängt vom Anwendungsfall ab.

Was den Unterschied in der Geschwindigkeit des Browsers anbelangt, stelle ich mir vor, dass dies daran liegt, dass die Browser das Javascript analysieren.

    
Schleis 28.05.2013, 15:07
quelle

Tags und Links