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

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

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

    我們常用的使用場景是: 

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

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

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

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

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


function interalRun(times) 

    // todo: depend on times parameter 

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

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

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

主站蜘蛛池模板: 精品亚洲午夜久久久久 | 少妇人妻偷人精品视蜜桃 | 99re久久热在线播放8 | 4k岛国精品午夜高清在线观看 | 国产午夜精品视频在线播放 | 国产午夜免费视频片夜色 | 亚洲精品久久久无码一区二区 | 成人免费小视频 | 秋霞网站一级一片 | 成人免费在线 | 性888xxxx入欧美 | 日本国产成人精品无码区在线网站 | 热综合一本伊人久久精品 | 日韩精品久久日日躁夜夜躁影视 | 久久亚洲午夜牛牛影视 | 亚洲国产夜色在线观看 | 国产曰韩无码亚洲视频 | 大中国免费视频大全在线观看 | 久久re6热在线视频 久久er国产免费精品 | 双性将军粗壮H灌满怀孕 | 俄罗斯美女z0z0z0在线 | 麻豆乱码一卡二卡三卡视频 | 午夜免费福利片 | 九九黄色大片 | 男人J桶进男人屁股过程 | 在线视频网站www色 在线视频免费国产成人 | 久久精品国产亚洲AV影院 | AV精品爆乳纯肉H漫网站 | va亚洲va天堂va视频在线 | 国产国拍亚洲精品av麻豆 | hd性欧美俱乐部中文 | 伊人热人久久中文字幕 | 成人国产精品免费网站 | 国产一区二区三区四区五在线观看 | 午夜福利免费0948视频 | 搞av.com| 98久久人妻无码精品系列蜜桃 | 欧美久久综合性欧美 | 中文字幕无线观看不卡网站 | 欧美日韩黄色 | 视频一区在线免费观看 |