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

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

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

    emu in blogjava

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks

    一天都被雜七雜八的bug和版本發布纏住,到了自由下來的時候已經是加班的鐘點了,看到了網友昨天的一個討論:

    function ?buildList(list)?{
    ????
    var ?result? = ?[];
    ????
    for ?( var ?i? = ? 0 ;?i? < ?list.length;?i ++ )?{
    ????????
    var ?item? = ?'item'? + ?list[i];
    ????????result.push(?
    function ()?{alert(item? + ?'?'? + ?list[i])}?);
    ????}
    ????
    return ?result;
    }

    function ?testList()?{
    ????
    var ?fnlist? = ?buildList([ 1 , 2 , 3 ]);
    ????
    for ?( var ?j? = ? 0 ;?j? < ?fnlist.length;?j ++ )?{
    ????????fnlist[j]();
    ????}
    }

    testList();

    按照emu的理解,正確的做法應該是這樣:

    function?buildList(list)?{
    ????
    var?result?=?[];
    ????
    for?(var?i?=?0;?i?<?list.length;?i++)?{
    ????????
    var?item?=?'item'?+?list[i];
    ????????result.push(?
    function(a,b){return?function(){alert(a?+?'?'?+?b)}}(item,?list[i])?);
    ????}
    ????
    return?result;
    }

    function?testList()?{
    ????
    var?fnlist?=?buildList([1,2,3]);
    ????
    for?(var?j?=?0;?j?<?fnlist.length;?j++)?{
    ????????fnlist[j]();
    ????}
    }

    testList();


    探討的時候又翻出來一篇舊帖子,發現自己當年居然還能這樣子玩array:

    var?o={length:10,0:"a",1:"b",2:"c",5:"d"};???
    alert(Array.prototype.join.call(Array.prototype.reverse.call(o)));

    猜測構造器是必要的,因此getElementsBy...方法返回的集合不能應該用上去:
    var?o?=?document.getElementsByTagName("body");
    alert(o.length)
    alert(o[
    0])
    alert(o.constructor)
    alert(Array.prototype.join.call(Array.prototype.reverse.call(o)));

    關于call Array的各個方法的基本條件(有構造器、有length屬性、有0..n屬性)沒有文檔支持,完全是摸索出來的,佩服自己一個
    posted on 2006-09-20 22:04 emu 閱讀(1318) 評論(2)  編輯  收藏

    評論

    # re: 居然抽時間玩了一下技術 2008-09-02 12:54 Relucent
    很強我是說
    “alert(Array.prototype.join.call(Array.prototype.reverse.call(o)));”
      回復  更多評論
      

    # re: 居然抽時間玩了一下技術 2008-09-02 12:56 Relucent
    和“alert(Array.prototype.slice.call(o).join());”應該是同樣效果。  回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 免费在线看v网址| 99久9在线|免费| 成人永久福利免费观看| 亚洲国产区男人本色在线观看| 57pao国产成视频免费播放| 亚洲日韩区在线电影| 99久久人妻精品免费一区| 亚洲国产精品久久久久婷婷老年 | a在线观看免费视频| 亚洲精品无码久久久| 一级视频在线免费观看| 国产综合亚洲专区在线| 一区二区三区无码视频免费福利| 亚洲国产精品无码中文字| 人妻无码一区二区三区免费| 久久久久亚洲精品日久生情| 国产免费不卡视频| 亚洲综合在线一区二区三区| 成人免费视频国产| 亚州**色毛片免费观看| 精品亚洲综合久久中文字幕| 午夜视频在线免费观看| 亚洲视频一区二区三区四区| 好爽好紧好大的免费视频国产| 特级毛片A级毛片免费播放| 亚洲人精品午夜射精日韩| 久久久久久久99精品免费| 456亚洲人成影院在线观| 四虎永久免费地址在线网站| GOGOGO免费观看国语| 亚洲精品高清国产麻豆专区| 最新猫咪www免费人成| 国产精品美女久久久免费| 亚洲一卡2卡三卡4卡有限公司| 无人在线观看免费高清视频| 又大又硬又粗又黄的视频免费看 | 51精品视频免费国产专区| 亚洲真人无码永久在线观看| 亚洲中文字幕无码专区| 91香蕉国产线在线观看免费| 亚洲日韩在线中文字幕综合 |