采用自執(zhí)行的匿名函數(shù)解決for循環(huán)使用閉包的問(wèn)題
這段代碼輸出的是10個(gè)10而不是期望的0到9,因?yàn)殚]包內(nèi)是對(duì)i的引用,然后函數(shù)執(zhí)行時(shí)i已經(jīng)變成了10
function f1(){ for(var i = 0; i < 10; i++) { setTimeout(function() { alert(i); }, 1000); } } f1();
解決以上的問(wèn)題可以采用自執(zhí)行的匿名函數(shù)
function f2(){ for(var i = 0; i < 10; i++) { (function(e) { setTimeout(function() { alert(e); }, 1000); })(i); } } f2();
這里的匿名函數(shù)將i作為參數(shù),這里的e會(huì)有i的一個(gè)拷貝,而引用時(shí)是對(duì)e的引用,這就避免了上述的問(wèn)題
相關(guān)文章
javascript實(shí)現(xiàn)點(diǎn)擊圖片切換
這篇文章主要介紹了javascript實(shí)現(xiàn)點(diǎn)擊圖片切換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04javascript Array對(duì)象基礎(chǔ)知識(shí)小結(jié)
感覺(jué)自己對(duì)Array對(duì)象總是有種朦朧的感覺(jué),今天自己手寫總結(jié),加深一下印象。2010-11-11JS實(shí)現(xiàn)用特殊符號(hào)替換字符串的中間部分區(qū)域的實(shí)例代碼
相信很多人都遇到過(guò)敏感信息需要做部分隱藏功能,大多數(shù)都是用特殊符號(hào)去替換。今天小編給大家?guī)?lái)了JS實(shí)現(xiàn)用特殊符號(hào)替換字符串的中間部分區(qū)域的實(shí)例代碼,需要的朋友參考下吧2018-07-07JavaScript人臉識(shí)別技術(shù)及臉部識(shí)別JavaScript類庫(kù)Tracking.js
人臉識(shí)別的JavaScript程序包是Face Detection,它是由Jay Salvat和Liu Liu開(kāi)發(fā)的。它是一個(gè)標(biāo)準(zhǔn)的jQuery插件,通過(guò)對(duì)提供的圖片進(jìn)行分析,返回所有找到的臉部圖像的坐標(biāo),感興趣的朋友跟著小編一起學(xué)習(xí)js人臉識(shí)別技術(shù)及臉部識(shí)別JavaScript類庫(kù)Tracking.js吧2015-09-09layui實(shí)現(xiàn)checkbox的目錄樹(shù)tree的例子
今天小編就為大家分享一篇layui實(shí)現(xiàn)checkbox的目錄樹(shù)tree的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09