天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

精解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()使用方式與參數傳遞問題!,轉載需保留來源!

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

主站蜘蛛池模板: 国产嫩草影院精品免费网址 | 99久久精品免费看国产免费 | 伊人大香线蕉影院在线播放 | 国产亚洲精品久久孕妇呦呦你懂 | 国语92电影网午夜福利 | 国产在线观看91精品 | 乱码午夜-极品国产内射 | 年轻的搜子8中字在线观看 年轻的朋友4在线看中文字幕 | 蜜桃TV成人网站免费打开 | 俄罗斯人与动ZOZ0 | 中文字幕不卡一区二区三区 | 亚洲AV久久无码精品蜜桃 | 真实处破女全过程完免费观看 | 欧美丰满少妇久久无码精品 | 国产成人一区二区三中文 | 青青草久久| 亚洲中文日韩日本在线视频 | 好男人在线高清WWW免费观看 | 午夜福利电影网站鲁片大全 | 亚洲 欧美 国产 综合 播放 | 粉嫩AV国产一区二区福利姬 | 我要女人的全黄录像 | 国产精品第九页 | 97在线精品视频 | 男人网站在线 | 一本色道久久综合亚洲精品蜜桃冫 | 国产AV午夜精品一区二区入口 | 久久只精品99品免费久 | 天天综合亚洲综合网站 | 国产精品自在自线亚洲 | 中文字幕久久熟女人妻AV免费 | 欧洲-级毛片内射八十老太婆 | 国产精品69人妻无码久久久 | 久久全国免费观看视频 | 欧美同志高清vivoeso | 国产在线一区二区三区四区 | 女同志videos最新另 | CHRISTMAS农村夫妻HO | 亚洲成色爱我久久 | 成人性生交大片免费看中文 | 国产精品18久久久久久欧美 |