2013-01-12 14 views
9

Powiel możliwe:
Are “(function () { }) ()” and “(function () { } ())” functionally equal in JavaScript?Jaka jest różnica między tymi trzema formami anonimowo wywołującymi funkcję?

Czytam dokument poniżej.

http://addyosmani.com/resources/essentialjsdesignpatterns/book/#patternity

Kiedy spojrzałem chociaż te przykłady, self-powoływaniu się na anonimowego funkcji miał trzy formy.

Jeden był

(function() { 
    //do something 
})(); 

a drugi był

function() { 
    //do something 
}(); 

a drugi był

(function() { 
    //do something 
}()); 

Jaka jest różnica między tymi trzema formami?

Dziękuję za przeczytanie!

+3

Drugi jest błąd składni, jeśli stoi samotnie. –

Odpowiedz

6

Pierwszy i ostatni są skutecznie identyczne. Różnice są kwestią stylu.

Drugi jest niebezpieczne jak (w zależności od tego, gdzie to jest) to może być funkcją deklaracja zamiast funkcją wyrażenie i nie może natychmiast wywołać deklarację funkcji.

1

Funkcja postępowanie nie jest prawidłowa składnia:

function() { 
    //do something 
}(); 
Powiązane problemy