1 回答

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
第一個(gè)是閉包,loop1,loop2,loop3,loop4,loop5中的變量引用的變量i其實(shí)是同一個(gè),都是父function(這里應(yīng)該是全局作用域)中的i。
注意:它們引用的是同一個(gè)變量,都是循環(huán)中的那個(gè)i。
所以當(dāng)for循環(huán)結(jié)束的時(shí)候,i已經(jīng)是6了;
所以調(diào)用loop1的時(shí)候,又因?yàn)檩敵龅氖莍++(++在后,先引用,后加),即輸出6,但i已經(jīng)是7了;
后面依此類推,分別輸出7,8,9,10.
第二個(gè)是匿名函數(shù)自執(zhí)行,要注意跟第一個(gè)的區(qū)別。匿名函數(shù)自執(zhí)行的方式可以看到,變量i以形參的形式傳遞到匿名函數(shù)內(nèi)部了,所以在這個(gè)匿名函數(shù)中用到的i就不再是父function中的變量i了,完全是不同的兩個(gè)。而且由于匿名函數(shù)自執(zhí)行的原因,5個(gè)loop分別引用的也是各自的i,互不相關(guān)。
注意:它們引用的不再是同一個(gè)變量,不再是循環(huán)中的那個(gè)i
后面的就跟前面差不多了,不再解釋
這個(gè)題目考的是閉包,可以查看閉包的相關(guān)資料。
添加回答
舉報(bào)