for(var i = 0; i < 5; i++) { (function() { setTimeout(function() { console.log(i); }, i * 1000); })(i);}問輸出什么?我其實(shí)是想問的是不是可以拆一下,拆成for(var i=0;i<=5;i++){function ret(i){function timer(){console.log(i);}setTimeot(timer,i*1000);}ret(i);}原題自己跑過了,輸出的是5個(gè)5是不是可以理解為:因?yàn)楦緵]有i傳入到塊級作用域里面去,所以里面跑的還是外面跑完之后的i?不知道上面的理解的對不對,求大佬指點(diǎn)一下,看了一晚上閉包,看的要死啦....求大佬推薦IIFE方面的文章,看了好幾篇都感覺理解不了閉包和IIFE。
一道經(jīng)典的JS關(guān)于閉包的題
Smart貓小萌
2018-10-12 14:15:26