什么是IIFE
IIFE就是立即执行函数表达式(Immediately-Invoked Function Expression)
为什么需要IIFE
应用IIFE有两个比较经典的使用场景,
第一就是在循环中定时输出数据项,
for(var i=0;i<5;i++){
setTimeout(function(){
console.log(i);
},1000);
}
上面输出的并不是0,1,2,3,4而是5,5,5,5,5
for(var i=0;i<5;i++){
(function(i){
setTimeout(function(){
console.log(i);
},1000);
})(i)
}
这输出的才是0,1,2,3,4
第二是类似于jQuery/Node的插件和模块开发
(function($){
//代码
})(jQuery)