淺析javascript異步執(zhí)行函數(shù)導(dǎo)致的變量變化問題解決思路
淺析javascript異步執(zhí)行函數(shù)導(dǎo)致的變量變化問題解決思路
for(var i=0;i<3;i++) { setTimeout(function(){ console.log(i) },0); } 控制臺輸出: 3 3 3
這是因?yàn)閳?zhí)行方法的時候for循環(huán)已經(jīng)執(zhí)行完成每次執(zhí)行的時候取得都是3 而不是1-2-3這時我們可以使用立即執(zhí)行函數(shù)為每一次循環(huán)創(chuàng)建一個變量副本來供定時器調(diào)用解決這個問題
for (var i = 0; i < 3; i++) { setTimeout( (function () { var _i = i; return function () { console.log(_i) }; })(), 0); } 控制臺輸出: 1 2 3
以上這篇淺析javascript異步執(zhí)行函數(shù)導(dǎo)致的變量變化問題解決思路就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
JS如何根據(jù)條件取出數(shù)組中對應(yīng)項(xiàng)
這篇文章主要介紹了JS根據(jù)條件取出數(shù)組中對應(yīng)項(xiàng),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03