IIFE(Immediately-Invoked Function Expression) 立即執(zhí)行函數(shù)表達(dá)式
for(var i = 0;i < 5;i++){
setInterval( function(){
console.log(i)
},500)
}
上面的代碼塊我們的本意是想循環(huán)輸出0,1,2,3,4,但是實(shí)際卻只輸出5。原因是執(zhí)行完循環(huán)后才對(duì)循環(huán)體內(nèi)的代碼執(zhí)行跌帐。如何解決這個(gè)問(wèn)題华坦,才有IIFE方法進(jìn)行解決涕烧。
for(var i = 0;i < 5;i++){
(function(i){
setInterval( function(){
console.log( i )
},1000)
})(i);
}
通過(guò)上面方法趴樱,此時(shí)后臺(tái)打印可以查看已經(jīng)成為我們想要到答案阁苞。
當(dāng)然還有在JQuery或者Node中避免變量污染捣卤,使用這種方法耕肩。
( function($){
//代碼塊
})(jQuery)