• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 經典問題:向setTimeout傳遞函數參數

    發表于:2007-05-25來源:作者:點擊數: 標簽:
    也許你過去在setTimeout中傳參數一直是這樣 setTimeout("pass(" + argu + ")",1000) 這樣只能傳字符串,對傳遞object就無能為力了,需要大費文章.然而別忘了,第一個參數還可以是function!!! 看以下代碼實現向里面的function 傳參數 script type="text/ java sc

    也許你過去在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爛,沒有實現~~~~~~~~~~~~~

     

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>