一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

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

在使用JScript的時候,我們有時需要間隔的執行一個方法,比如用來產生網頁UI動畫特效啥的。這是我們常常會使用方法setInterval或setTimeout,但是由于這兩個方法是由腳本宿主模擬出來的Timer線程,在通過其調用我們的方法是不能為其傳遞參數。

    我們常用的使用場景是: 

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

    顯然強行代參數的調用: window.setTimeout("delayRun(param)", n); 
復制代碼 代碼如下:
window.setInterval("intervalRun(param)", n); 
window.setTimeout(delayRun(param), n); 
window.setInterval(intervalRun(param), n); 

    都是錯誤的,因為string literals形式的方法調用,param必須是全局變量(即window對象上的變量)才行;而function pointer形式的調用,完全錯誤了,這是把函數的返回值當成了setTimeout/setInterval函數的參數了,完全不是我們所望的事情。

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

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


function interalRun(times) 

    // todo: depend on times parameter 

    這樣一來,就可以不再依賴于全局變量向delayRun/intervalRun函數中傳遞參數,畢竟當頁面中的全局變量多了以后,會給腳本的開發、調試和管理等帶來極大的puzzle。

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

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 成人情趣视频无遮掩免费 | 国产成人精品一区二三区2022 | 91杏吧在线网站 | 欧美成人二区 | 日韩 国产 欧美视频一区二区三区 | 精品在线一区 | 国产一区二区免费不卡在线播放 | 99久久精品免费看国产一区二区三区 | 国产成人精品高清在线观看99 | 黄色小视频免费 | 久久亚洲综合伊人 | 黄色三级视频网站 | 怡红院成人影院 | 久久黄色大片 | 一级毛毛片毛片毛片毛片在线看 | 中文字幕精品一区二区日本 | 免费a级欧美黑寡妇a观看 | 一区二区三区四区在线视频 | 国产亚洲精品拍拍拍拍拍 | 一级特黄国产高清毛片97看片 | 91丝袜美腿高跟国产极品老师 | 一区二区三区四区五区 | 免费人成网站在线高清 | 欧美人禽杂交狂配在线观看视频 | 亚洲国产精品一区二区三区在线观看 | 久久综合88 | 青青草久热精品视频在线观看 | 99精品国产第一福利网站 | 亚洲视频一区二区三区 | 国产爆操 | 久久精品国产屋 | 无遮挡毛片 | 精品视频久久 | 亚洲一区免费 | 国产美女一区二区在线观看 | 欧美精品激情 | 国产色手机在线观看播放 | 91精品一区二区三区在线播放 | 精品国产一区二区二三区在线观看 | 亚洲第一页在线观看 | 免费观看欧美一级特黄 |