IIFE

IIFE(Immediately-Invoked Function Expression) 立即执行函数表达式

for(var i = 0;i < 5;i++){
    setInterval( function(){
        console.log(i)
    },500)
}

上面的代码块我们的本意是想循环输出0,1,2,3,4,但是实际却只输出5。原因是执行完循环后才对循环体内的代码执行。如何解决这个问题,才有IIFE方法进行解决。

for(var i = 0;i < 5;i++){
    (function(i){
        setInterval( function(){
            console.log( i )
        },1000)
    })(i);
}

通过上面方法,此时后台打印可以查看已经成为我们想要到答案。

当然还有在JQuery或者Node中避免变量污染,使用这种方法。

( function($){
    //代码块
})(jQuery)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容