淺析javascript異步執(zhí)行函數(shù)導(dǎo)致的變量變化問題解決思路
淺析javascript異步執(zhí)行函數(shù)導(dǎo)致的變量變化問題解決思路
for(var i=0;i<3;i++)
{
setTimeout(function(){
console.log(i)
},0);
}
控制臺(tái)輸出:
3
3
3
這是因?yàn)閳?zhí)行方法的時(shí)候for循環(huán)已經(jīng)執(zhí)行完成每次執(zhí)行的時(shí)候取得都是3 而不是1-2-3這時(shí)我們可以使用立即執(zhí)行函數(shù)為每一次循環(huán)創(chuàng)建一個(gè)變量副本來供定時(shí)器調(diào)用解決這個(gè)問題
for (var i = 0; i < 3; i++) {
setTimeout(
(function () {
var _i = i;
return function () {
console.log(_i)
};
})(),
0);
}
控制臺(tái)輸出:
1
2
3
以上這篇淺析javascript異步執(zhí)行函數(shù)導(dǎo)致的變量變化問題解決思路就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
javascript 動(dòng)態(tài)加載 css 方法總結(jié)
有時(shí)候我們?cè)谠O(shè)計(jì)網(wǎng)頁的時(shí)候想動(dòng)態(tài)的加載css文件,并不是將css文件寫死在頁面中,這時(shí)就可以使用下面方法.2009-07-07
javascript中export?和export?default的區(qū)別
本文主要介紹了javascript中export?和export?default的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
如何在CocosCreator中利用常駐節(jié)點(diǎn)做圖層管理
這篇文章主要介紹了如何在CocosCreator中利用常駐節(jié)點(diǎn)做圖層管理,這些技巧非常實(shí)用,希望同學(xué)們看完,回去可以試一下2021-04-04
javascript+ajax實(shí)現(xiàn)產(chǎn)品頁面加載信息
本文給大家分享的是使用javascript結(jié)合ajax實(shí)現(xiàn)產(chǎn)品頁面無刷新加載信息的代碼,非常的簡單實(shí)用,有需要的小伙伴可以參考下。2015-07-07
JavaScript實(shí)現(xiàn)淺拷貝與深拷貝的方法分析
這篇文章主要介紹了JavaScript實(shí)現(xiàn)淺拷貝與深拷貝的方法,結(jié)合實(shí)例形式總結(jié)分析了JavaScript淺拷貝與深拷貝的定義與使用方法,需要的朋友可以參考下2018-07-07
javascript 客戶端驗(yàn)證上傳圖片的大?。嫒軮E和火狐)
做web開發(fā)的哥們都會(huì)遇到批量上傳圖片的需求,相信大家都會(huì)遇到這樣的問題,當(dāng)選擇好要上傳的圖片,提交服務(wù)器后,發(fā)現(xiàn)有圖片的大小超過了系統(tǒng)允許的范圍。2009-08-08
關(guān)于ES6中的箭頭函數(shù)超詳細(xì)梳理
箭頭函數(shù)可以說是es6的一大亮點(diǎn),使用箭頭函數(shù),可以簡化編碼過程,是代碼更加的簡潔,下面這篇文章主要給大家介紹了關(guān)于ES6中箭頭函數(shù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08

