<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JAVA & XML & JAVASCRIPT & AJAX & CSS

    Web 2.0 技術(shù)儲備............

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      77 隨筆 :: 17 文章 :: 116 評論 :: 0 Trackbacks

    轉(zhuǎn)自:恒星設計? URL = http://www.bjcan.com/hengxing/more.asp?lb=94

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

    ??? 我們常用的使用場景是:

    window.setTimeout("delayRun()", n);
    window.setInterval("intervalRun()", n);
    window.setTimeout(delayRun, n);
    window.setInterval(intervalRun, n);
    ??? 顯然強行代參數(shù)的調(diào)用: window.setTimeout("delayRun(param)", n);
    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ù)的返回值當成了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ā)、調(diào)試和管理等帶來極大的puzzle。

    posted on 2006-04-27 10:39 Web 2.0 技術(shù)資源 閱讀(11606) 評論(8)  編輯  收藏 所屬分類: Javascript

    評論

    # 我生日 2008-08-12 21:57 龍前
    工會能夠化工   回復  更多評論
      

    # re: window.setTimeout() & window.setInterval() 使用方式與參數(shù)傳遞問題! 2009-02-09 12:54 zean
    天才~  回復  更多評論
      

    # re: window.setTimeout() & window.setInterval() 使用方式與參數(shù)傳遞問題![未登錄] 2009-06-22 13:37 java fan
    學習了  回復  更多評論
      

    # re: window.setTimeout() & window.setInterval() 使用方式與參數(shù)傳遞問題! 2009-09-16 17:28 someone
    window.setInterval("intervalRun('param')", n);
    這樣就行了  回復  更多評論
      

    # re: window.setTimeout() & window.setInterval() 使用方式與參數(shù)傳遞問題! 2010-07-21 09:57 simpleCode
    thanks a lot  回復  更多評論
      

    # re: window.setTimeout() & window.setInterval() 使用方式與參數(shù)傳遞問題![未登錄] 2011-04-17 10:36 ice
    用到了 非常感謝 但是不太明白原理 可以解釋一下嗎  回復  更多評論
      

    # re: window.setTimeout() & window.setInterval() 使用方式與參數(shù)傳遞問題! 2011-04-17 18:07 Web 2.0 技術(shù)資源
    q@ice
    請學習下Javascript的閉包特性,你就明白啦!  回復  更多評論
      

    # re: window.setTimeout() & window.setInterval() 使用方式與參數(shù)傳遞問題! 2011-12-19 11:03 阿斯大法
    不太懂……  回復  更多評論
      

    主站蜘蛛池模板: 亚洲成年人啊啊aa在线观看| 日本不卡在线观看免费v| 亚洲另类激情综合偷自拍图| 无遮挡a级毛片免费看| 国产18禁黄网站免费观看| 美女黄频a美女大全免费皮| 亚洲成人影院在线观看| 成年网在线观看免费观看网址| 亚洲国产精品成人AV无码久久综合影院| 国产精品亚洲а∨天堂2021 | 美女被免费视频网站| 免费一区二区三区四区五区| free哆拍拍免费永久视频| 亚洲国产精品无码一线岛国| 色猫咪免费人成网站在线观看| 亚洲四虎永久在线播放| 国产1024精品视频专区免费| 亚洲精品无码久久久久YW| 亚洲成a人片在线播放| 两个人看的www免费高清| 久久久亚洲AV波多野结衣| 久久久久久久久免费看无码| 色窝窝亚洲AV网在线观看| 亚洲无线码在线一区观看| jjizz全部免费看片| 亚洲av最新在线观看网址| 亚洲毛片网址在线观看中文字幕 | 激情亚洲一区国产精品| 国产色婷婷精品免费视频| 国产VA免费精品高清在线| 亚洲另类激情综合偷自拍 | 一区二区无码免费视频网站| 亚洲AV无码精品国产成人| 区久久AAA片69亚洲| 国产91免费视频| 老司机福利在线免费观看| 亚洲avav天堂av在线不卡| 韩国二级毛片免费播放| 丝瓜app免费下载网址进入ios| 亚洲黑人嫩小videos| 深夜国产福利99亚洲视频|