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

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

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

    隨筆 - 8, 文章 - 0, 評論 - 4, 引用 - 0
    數據加載中……

    轉:重寫window.setTimeout傳參數(支持傳對象)的方法

    也許你過去在setTimeout中傳參數一直是這樣

    setTimeout("pass(" + argu + ")",1000)

    這樣只能傳字符串,對傳遞object就無能為力了,需要大費文章.然而別忘了,第一個參數還可以是function!!!

    看以下代碼實現向里面的function 傳參數

    <script type="text/javascript">
    var _st = window.setTimeout;window.setTimeout = function(fRef, mDelay) {
    if(typeof fRef == 'function'){ 
      var argu 
    = Array.prototype.slice.call(arguments,2); 
      var f 
    = (function(){ fRef.apply(null, argu); }); 
      return _st(f, mDelay); }
      return
     _st(fRef,mDelay);}

    function test(x){ alert(x);}
    window.setTimeout(test,
    1000,'fason');
    </
    script>

    怎樣?是不是很方便了?代碼其實就很簡單,重載了一下window.setTimeout,用apply去回調前面的function.

    還沒有用過apply,call的可以去查資料,發現版本不夠的看我低版本的實現方法http://blog.csdn.net/fason/archive/2004/07/30/apply_call.aspx

    另外需要知道的是,NS環境下,后面的參數確實是來傳給前面的函數的,IE爛,沒有實現~~~~~~~~~~~~~

    posted on 2008-03-18 10:21 Pitey 閱讀(3674) 評論(1)  編輯  收藏 所屬分類: JavaScript

    評論

    # re: 轉:重寫window.setTimeout傳參數(支持傳對象)的方法  回復  更多評論   

    這個方法在實際應用中IE7-下存在明顯的內存泄漏

    閉包傳參是一個選擇
    2008-07-30 22:06 | 寶兒
    主站蜘蛛池模板: 日本亚洲色大成网站www久久| 亚洲欧洲国产日韩精品| 亚洲性无码AV中文字幕| 亚洲国产人成精品| AV激情亚洲男人的天堂国语| 国产最新凸凹视频免费| 美女黄色免费网站| 亚洲第一成人影院| 国产精品视频全国免费观看| 亚洲va无码va在线va天堂| 暖暖在线视频免费视频| 亚洲高清视频免费| 最近2019中文字幕mv免费看| 亚洲av午夜电影在线观看| 日韩精品亚洲专区在线观看| 久久久精品视频免费观看 | 全黄性性激高免费视频| 一级a性色生活片久久无少妇一级婬片免费放 | 青苹果乐园免费高清在线| 亚洲精华国产精华精华液| 啊v在线免费观看| a级午夜毛片免费一区二区| 亚洲黄色在线视频| 在线不卡免费视频| 国产精品无码永久免费888 | 国产精品亚洲小说专区| 亚洲一区二区视频在线观看| 午夜视频在线免费观看| 亚洲熟女www一区二区三区| 精品国产日韩亚洲一区| 无码囯产精品一区二区免费| 亚洲日韩AV一区二区三区中文 | 成人无码视频97免费| 亚洲精品国产情侣av在线| 手机看片久久国产免费| 免费在线看黄网站| 亚洲成在人线在线播放无码| 亚洲精品乱码久久久久久自慰| 亚色九九九全国免费视频| 高清免费久久午夜精品| 亚洲国产精品久久久久秋霞影院|