2013-01-12 20 views
9

Olası Çoğalt:
Are “(function () { }) ()” and “(function () { } ())” functionally equal in JavaScript?Bu üç kendi kendine çalışan anonim işlev arasındaki fark nedir?

aşağıda belgeyi okuyorum. Bu örnekler, isimsiz bir işlev kendi kendini çağıran üç formları vardı gerçi

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

ben baktığımda.

bir

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

ve başka

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

ve diğer

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

bu üç formları arasındaki fark nedir oldu?

Okumalarınız için teşekkür ederiz!

+3

ikincisi bir yazım hatasıdır. –

cevap

6

İlk ve sonunlar birbirinin aynısıdır. Farklılıklar bir stil meselesidir. bir işlev bildirimi yerine bir fonksiyonu sentezleme olabilir ve hemen bir işlevi bildirimi refarans olarak (nerede bağlı olarak)

ikinci güvenli değildir.

1

işlem fonksiyonu geçerli sözdizimi değil: tek başına duruyor eğer

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