中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

精解window.setTimeout()&window.setInterval()使用方式與參數(shù)傳遞問題!

在使用JScript的時(shí)候,我們有時(shí)需要間隔的執(zhí)行一個(gè)方法,比如用來(lái)產(chǎn)生網(wǎng)頁(yè)UI動(dòng)畫特效啥的。這是我們常常會(huì)使用方法setInterval或setTimeout,但是由于這兩個(gè)方法是由腳本宿主模擬出來(lái)的Timer線程,在通過其調(diào)用我們的方法是不能為其傳遞參數(shù)。

    我們常用的使用場(chǎng)景是: 

復(fù)制代碼 代碼如下:
window.setTimeout("delayRun()", n); 
window.setInterval("intervalRun()", n); 
window.setTimeout(delayRun, n); 
window.setInterval(intervalRun, n); 

    顯然強(qiáng)行代參數(shù)的調(diào)用: window.setTimeout("delayRun(param)", n); 
復(fù)制代碼 代碼如下:
window.setInterval("intervalRun(param)", n); 
window.setTimeout(delayRun(param), n); 
window.setInterval(intervalRun(param), n); 

    都是錯(cuò)誤的,因?yàn)閟tring literals形式的方法調(diào)用,param必須是全局變量(即window對(duì)象上的變量)才行;而function pointer形式的調(diào)用,完全錯(cuò)誤了,這是把函數(shù)的返回值當(dāng)成了setTimeout/setInterval函數(shù)的參數(shù)了,完全不是我們所望的事情。

    解決這個(gè)問題的辦法可以使用匿名函數(shù)包裝的方式,在以下scenario中我們這么做: 
復(fù)制代碼 代碼如下:
function foo() 

    var param = 100; 
    window.setInterval(function() 
    { 
        intervalRun(param); 
    }, 888); 


function interalRun(times) 

    // todo: depend on times parameter 

    這樣一來(lái),就可以不再依賴于全局變量向delayRun/intervalRun函數(shù)中傳遞參數(shù),畢竟當(dāng)頁(yè)面中的全局變量多了以后,會(huì)給腳本的開發(fā)、調(diào)試和管理等帶來(lái)極大的puzzle。

JavaScript技術(shù)精解window.setTimeout()&window.setInterval()使用方式與參數(shù)傳遞問題!,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 日韩午夜在线观看 | 久久福利 | 午夜国产精品视频 | 激情综合五月 | 国产精品99久久免费观看 | 五月天国产在线 | 精品少妇一区二区三区日产乱码 | 超碰在线97国产 | 成人国产精品入口免费视频 | 午夜精品一区 | jizz中国日本 | 精品精品视频 | 国产精品久久久久久av公交车 | 日本精品免费在线观看 | 亚洲精品乱码久久久久久蜜桃 | 黄页网址在线观看 | 亚洲欧美日韩系列 | 一区二区日本 | 久久久综合久久 | 国产激情在线播放 | 日韩三级| 欧美国产日韩一区二区三区 | 国产精品一区二区视频 | www在线视频 | 337p日本欧洲亚洲大胆 | 日本高清不卡视频 | 午夜精品一区二区三区免费视频 | 99影视 | 成人羞羞国产免费视频 | 欧美一区二区三区在线 | 国产日韩欧美 | 国产成人一区二区三区电影 | 亚洲成人精品一区二区 | 亚洲视频一区二区三区 | 日韩欧美中文字幕在线观看 | 老子午夜影院 | 亚洲精选一区二区 | 亚洲精品一区久久久久久 | 久久国产精品-国产精品 | 天天综合久久 | 欧美国产91 |