什么是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)