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

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

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

    我們常用的使用場景是: 

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

    顯然強行代參數(shù)的調用: 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形式的調用,完全錯誤了,這是把函數(shù)的返回值當成了setTimeout/setInterval函數(shù)的參數(shù)了,完全不是我們所望的事情。

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

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


function interalRun(times) 

    // todo: depend on times parameter 

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

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

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

主站蜘蛛池模板: 国产精品久久久久久久久久久久 | 亚洲一区二区三区免费视频 | 中文av网站 | 福利二区 | 日韩第一区 | 久久国产欧美日韩精品 | 五月天婷婷丁香 | 国产日产久久高清欧美一区 | 国产一区亚洲 | 久久中文网 | 久久精品一区二区三区四区 | 国产综合久久 | 久久久久亚洲 | 一级毛片色一级 | 国产伦一区二区三区视频 | 亚洲精品在线免费观看视频 | 国产精品久久久久久久久久免费看 | 91免费视频| 综合久久av | 亚洲色片网站 | 在线一区观看 | 欧美日本免费 | 日韩在线电影 | 99久久免费精品国产男女高不卡 | 国产高清精品一区二区三区 | 毛片av免费在线观看 | 国产精品视频不卡 | av天天爽 | 国外激情av| 91tv在线观看| 欧美日韩三级在线观看 | 在线中文字幕视频 | 青青草一区 | 欧美群妇大交群中文字幕 | 国产一区| 国产精品久久亚洲 | 亚洲精品9999久久久久 | 日韩精品成人 | 精品一区二区在线观看 | 成人免费小视频 | 日本视频免费 |