2013-03-05 14 views
7

Ich sah die folgenden JavaScript-Funktionen funktioniert genau das gleiche, Was ist der Unterschied zwischen ihnen andere als Syntax. Die Funktion sind:Was ist der Unterschied zwischen diesen beiden?

var functionName=function(){ 
    //some code here 
}; 

function functionName(){ 
    //some code here 
} 

ich sie auf die gleiche Weise nennen wie:

functionName(); 

Bitte nicht‘sagen Sie mir, es Syntax ist anders, Anders als das gibt es einen Unterschied wie

1)speed of execution 
2)Memory utilization etc. 

Vielen Dank im Voraus!

+0

Funktion Ausdruck vs Funktionsdeklaration – elclanrs

+0

Exaact Doppelte http://stackoverflow.com/questions/336859/javascript-var-functionname-function-vs-function-functionname –

Antwort

1

Diese oft in Stackoverflow beantwortet wurde. Es ist nur die Art der Benennung. So einige Punkte aus den Antworten aufzunehmen, würde ich sagen:

  1. Funktionsdeklarationen und Variablendeklarationen werden immer bewegt („hochgezogen“) unsichtbar an die Spitze ihres enthaltenden Bereichs durch das JavaScript-Interpreter. Funktionsparameter und sprachdefinierte Namen sind natürlich schon da.

  2. Vorteile & Nachteile:

    einige Vorteile für die Namensgebung Funktionen sind:

    • Namen für die Meta-Analyse. functionInstance.name zeigt Ihnen den Namen.
    • Weit wichtiger ist, wird der Name in Stack-Spuren gedruckt.
    • Namen helfen auch beim Schreiben von selbstdokumentiertem oder literativem Code.

    Es gibt einen einzigen Nachteil Funktionen genannt Ausdrücke

    • IE hat Speicherlecks für NFA
  3. Ein weiterer wichtiger Unterschied

    Der Unterschied besteht darin, dass functionTwo definiert ist bei Parse-Zeit für einen Skriptblock, während functionOne bei Run-Ti definiert ist mich.Zum Beispiel:

    <script> 
        // Error 
        functionOne(); 
    
        var functionOne = function() { 
        } 
    </script> 
    
    <script> 
        // No error 
        functionTwo(); 
    
        function functionTwo() { 
        } 
    </script> 
    

Referenzen

  1. var functionName = function() {} vs function functionName() {}
  2. Are named functions or anonymous functions preferred in JavaScript?
  3. Named function expressions demystified
  4. Function Declarations vs. Function Expressions.
  5. var functionName = function() {} vs function functionName() {}
+1

Danke, das hat meine Zweifel ausgeräumt! – sandip

0
  1. Die erste ist Name Funktion Ausdrücke, die einen Wert an den Aufrufer zurückgeben sollte.
  2. zweite ist nur eine Funktion, es bis zu Ihnen ist, ob Sie Wert zurückgeben oder nicht
+0

Ich habe 1) Funktion ohne Einen Wert zurückgeben – sandip

Verwandte Themen