Kapaklar hakkında bazı yazılar okuyordum ve bunu her yerde gördüm, ama nasıl çalıştığına dair net bir açıklama yok - her zaman bana kullanmam söylendi ...
// Create a new anonymous function, to use as a wrapper
(function(){
// The variable that would, normally, be global
var msg = "Thanks for visiting!";
// Binding a new function to a global object
window.onunload = function(){
// Which uses the 'hidden' variable
alert( msg );
};
// Close off the anonymous function and execute it
})();
Tamam, yeni anonim işlev oluşturacağımızı ve sonra çalıştıracağımızı görüyorum. Bundan sonra bu basit kod çalışmalı (ve çalışıyor):
(function (msg){alert(msg)})('SO');
Sorum şu, burada ne tür bir büyü oluyor? Ben yazarken düşündüm:
(function (msg){alert(msg)})
"" (msg) işlevi gibi yeni bir adsız işlev oluşturulur ...
ama o zaman bu neden çalışmıyor?
(function (msg){alert(msg)});
('SO');
Neden aynı çizgide olması gerekiyor?
Bana bazı yayınları gösterebilir veya bana bir açıklama yapabilir misiniz?
(function (msg){alert(msg)})('SO');
tamamen kendi başına çalışır. Bundan önce yayınladığınız diğer anonim işlevle ilgisi yoktur. Bunlar tamamen ayrı iki anonim işlevdir. Anonim bir işlevi hemen çağırmanız gerekir, çünkü adı yoktur ve daha sonra başvurulamaz.