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

    評論

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

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

    閉包傳參是一個選擇
    2008-07-30 22:06 | 寶兒
    主站蜘蛛池模板: 亚洲av无码国产综合专区| 污污的视频在线免费观看| 最新69国产成人精品免费视频动漫 | 国产成人亚洲综合网站不卡| 又粗又黄又猛又爽大片免费| 成全高清在线观看免费| 亚洲日本人成中文字幕| 久久亚洲中文字幕精品一区四| 99久久99久久精品免费观看| 丰满亚洲大尺度无码无码专线| 亚洲AV人人澡人人爽人人夜夜| 国内自产少妇自拍区免费| 免费国产99久久久香蕉| 亚洲精品无码专区在线| 亚洲bt加勒比一区二区| 国产又黄又爽又刺激的免费网址 | 成人无遮挡毛片免费看| 免费看黄的成人APP| 亚洲欧美日韩国产成人| 亚洲av日韩av激情亚洲| 亚洲成年看片在线观看| 中文字幕无码视频手机免费看| 中文字幕无码免费久久9一区9| 亚洲性色AV日韩在线观看| 亚洲精品福利视频| 亚洲精品和日本精品| 免费黄色大片网站| 4455永久在线观免费看| a毛看片免费观看视频| 国产亚洲精品91| 亚洲色偷偷色噜噜狠狠99| 亚洲色图视频在线观看| 亚洲午夜福利AV一区二区无码| 成人免费无码精品国产电影| 1000部拍拍拍18勿入免费凤凰福利| baoyu116.永久免费视频| 四虎一区二区成人免费影院网址| 亚洲码欧美码一区二区三区| 亚洲国产综合自在线另类| 婷婷久久久亚洲欧洲日产国码AV| 亚洲一区二区精品视频|