采用自執(zhí)行的匿名函數(shù)解決for循環(huán)使用閉包的問題
更新時間:2014年09月11日 15:58:56 投稿:whsnow
這篇文章主要介紹了采用自執(zhí)行的匿名函數(shù)解決for循環(huán)使用閉包的問題,很簡單,但比較實用,需要的朋友可以參考下
這段代碼輸出的是10個10而不是期望的0到9,因為閉包內(nèi)是對i的引用,然后函數(shù)執(zhí)行時i已經(jīng)變成了10
function f1(){
for(var i = 0; i < 10; i++) {
setTimeout(function() {
alert(i);
}, 1000);
}
}
f1();
解決以上的問題可以采用自執(zhí)行的匿名函數(shù)
function f2(){
for(var i = 0; i < 10; i++) {
(function(e) {
setTimeout(function() {
alert(e);
}, 1000);
})(i);
}
}
f2();
這里的匿名函數(shù)將i作為參數(shù),這里的e會有i的一個拷貝,而引用時是對e的引用,這就避免了上述的問題
相關(guān)文章
JavaScript計算兩個日期時間段內(nèi)日期的方法
這篇文章主要介紹了JavaScript計算兩個日期時間段內(nèi)日期的方法,涉及javascript操作時間的技巧,需要的朋友可以參考下2015-03-03
javascript獲取文檔坐標(biāo)和視口坐標(biāo)
制作網(wǎng)頁的過程中,你有時候需要知道某個元素在網(wǎng)頁上的確切位置。下面的教程總結(jié)了Javascript在網(wǎng)頁定位方面的相關(guān)知識。有需要的小伙伴可以參考下。2015-05-05
COM組件中調(diào)用JavaScript函數(shù)詳解及實例
這篇文章主要介紹了COM組件中調(diào)用JavaScript函數(shù)詳解及實例的相關(guān)資料,需要的朋友可以參考下2017-02-02
JS字符串補(bǔ)全方法padStart()和padEnd()
這篇文章主要介紹了JS字符串補(bǔ)全方法padStart()和padEnd(),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
JavaScript+CSS實現(xiàn)模態(tài)框效果
這篇文章主要為大家詳細(xì)介紹了JavaScript+CSS實現(xiàn)模態(tài)框效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07

