for(var i = 0; i < 5; i++) { (function() { setTimeout(function() { console.log(i); }, i * 1000); })(i);}问输出什么?我其实是想问的是不是可以拆一下,拆成for(var i=0;i<=5;i++){function ret(i){function timer(){console.log(i);}setTimeot(timer,i*1000);}ret(i);}原题自己跑过了,输出的是5个5是不是可以理解为:因为根本没有i传入到块级作用域里面去,所以里面跑的还是外面跑完之后的i?不知道上面的理解的对不对,求大佬指点一下,看了一晚上闭包,看的要死啦....求大佬推荐IIFE方面的文章,看了好几篇都感觉理解不了闭包和IIFE。
添加回答
举报
0/150
提交
取消