<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 閱讀(3675) 評論(1)  編輯  收藏 所屬分類: JavaScript

    評論

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

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

    閉包傳參是一個選擇
    2008-07-30 22:06 | 寶兒
    主站蜘蛛池模板: 3344永久在线观看视频免费首页| 成人a免费α片在线视频网站| 少妇性饥渴无码A区免费| 亚洲一区免费观看| 最近2019中文字幕mv免费看| 四虎永久免费地址在线网站 | 一级毛片成人免费看a| 97国产在线公开免费观看| 韩国免费三片在线视频| 久久精品视频亚洲| 国产精品亚洲一区二区在线观看| 久久精品电影免费动漫| 亚洲精品偷拍视频免费观看| 亚洲国产视频一区| 国产又黄又爽又大的免费视频| 成人毛片免费播放| 亚洲高清国产拍精品熟女| 91嫩草免费国产永久入口| 一本色道久久综合亚洲精品| 亚洲Aⅴ在线无码播放毛片一线天| 一区二区三区福利视频免费观看| 亚洲男人天堂av| 91免费在线视频| 免费v片视频在线观看视频| 91丁香亚洲综合社区| 人人揉揉香蕉大免费不卡| 亚洲自偷精品视频自拍| 日韩精品免费在线视频| 亚洲另类自拍丝袜第1页| 免费播放一区二区三区| 亚洲乱码精品久久久久..| fc2免费人成在线| 亚洲精品无码久久不卡| a级毛片免费在线观看| 亚洲激情视频网站| 亚洲视频免费在线观看| 亚洲人成77777在线观看网| 国产免费AV片在线播放唯爱网| 亚洲黄色在线电影| 免费看美女被靠到爽的视频| 九九九精品视频免费|