四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

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

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

主站蜘蛛池模板: 教育在线教育平台直播| 叶子楣喜剧电影全集| 皇冠小刀清痘视频| 永夜星河导演| 恶老板| 飞艇全天精准计划软件| 吻船| 端午节手抄报一年级| jenna haze| 雷霆出击电视剧全集在线观看| 教学评一体化课题研究| 色在线看| 佩佩猪| 卢昱晓主演的电视剧| 江南好简谱| 在线免费电影网站| 被侵犯| cctv17农业农村频道在线直播| 5.25心理健康日主题班会ppt| 男操男视频网站| 汤姆·塞兹摩尔| 陈若仪个人简历资料| 李顺大造屋| 吃大米饭是增肥还是减肥| 奇怪的夜晚电影| 性视频免费| 视频一区二| 电影继母劳拉| 林柒予| 上锁的房间演员表| 蒙台梭利教师资格证官网| 隐秘而伟大豆瓣| 教育部全国青少年普法网答案| 林蛟| 郑书允的10部作品| 喜欢小红帽的原因怎么写| 妈妈的朋友泡妞| 王牌空战| 第五单元初试身手| 六下英语单词表| 黛博拉·安沃尔|