2013-03-05 16 views
7

widziałem następujące funkcje JavaScript działa dokładnie tak samo, to co jest różnica między nimi inny niż składni. Funkcja są:Jaka jest różnica między tymi dwoma?

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

function functionName(){ 
    //some code here 
} 

nazywam je w taki sam sposób, jak:

functionName(); 

Proszę nie”powiedzieć mi, że składnia jest inna, inne niż to jest jakaś różnica jak

1)speed of execution 
2)Memory utilization etc. 

Z góry dziękuję!

+0

funkcja ekspresji vs zgłoszenia funkcji – elclanrs

+0

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

Odpowiedz

1

to zostało odebrane wiele razy w StackOverflow. To tylko sposób nazywania. Więc objęciem kilka punktów z odpowiedzi, powiedziałbym:

  1. deklaracje funkcji i deklaracje zmiennych są zawsze przeniesione („podniósł”) niewidocznie na szczycie swojej zawierającego zakresie przez interpreter JavaScriptu. Parametry funkcji i nazwy zdefiniowane w języku są już oczywiście.

  2. Zalety & Wady:

    Istnieje kilka zalet funkcji nazewnictwa:

    • nazwy dla analizy meta. functionInstance.name pokaże Ci nazwę.
    • Co ważniejsze, nazwa zostanie wydrukowana w postaci śladów stosu.
    • nazwy pomagają również pisać dokumentację własną lub pisać kod.

    Jest jedna wada do wymienionych funkcji wyrażenia

    • IE ma wycieków pamięci dla NFE
  3. Inną główną różnicą

    Różnica polega na tym, że functionTwo jest zdefiniowana w czasie parowania dla bloku skryptu, podczas gdy functionOne jest zdefiniowany w run-ti mnie.Na przykład

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

Odniesienia

  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

Dziękuję ci, że oczyściłem moją wątpliwość! – sandip

0
  1. Pierwsza to nazwane wyrażenia funkcji, które powinny zwrócić pewną wartość do osoby dzwoniącej.
  2. 2 jeden jest tylko funkcja, to zapisu do ciebie czy wrócisz wartość lub nie
+0

I stosuje 1) bez funkcji odzyskiwanie dowolnej wartości – sandip

Powiązane problemy