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

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

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

    沒有眼淚
    Don't Cry!
    posts - 13,comments - 44,trackbacks - 0
            Ext2.0中,Ext類有個namespace方法,該方法的作用是把傳入的參數轉換成對象.使用該方法的目的主要在于可以區分類名相同的類,這有點和java中的package作用類似.讓我們先看下源碼:
    namespace : function(){
        
    var a=arguments, o=null, i, j, d, rt;
        
    for (i=0; i<a.length; ++i) {
            d
    =a[i].split(".");
            rt 
    = d[0];
                eval('
    if (typeof ' + rt + ' == "undefined"){' + rt + ' = {};} o = ' + rt + ';');
            
    for (j=1; j<d.length; ++j) {
                o[d[j]]
    =o[d[j]] || {};
                   o
    =o[d[j]];
            }

        }

    }
    從代碼可以看出,如果我們傳入的字符串參數是以"."分割的,那么將會創建多個對象,比如:
    Ext.namespace('system.corp');
    則會創建2個對象,相當于執行了下面的代碼:
    system = {};
    system.corp 
    = {};
    這樣,我們在自定義類的時候就能這樣使用:
    Ext.namespace('system.corp');

    system.corp.ManageCorp 
    = function() {
        
    //dosomething
    }
    如果還想定義一個同名的類,那么可以就使用不同的namespace來區分,這樣2個類就不會沖突了:
    Ext.namespace('system.admin');

    system.admin.ManageCorp 
    = function() {
        
    //dosomething
    }

    此外,注意源碼中"eval"方法的使用,如果有需要可以采用這種方式來解決問題.
    posted on 2008-03-19 22:24 zhangchao 閱讀(1665) 評論(8)  編輯  收藏 所屬分類: Ext

    FeedBack:
    # re: Ext中的namespace[未登錄]
    2008-04-04 10:16 | hehe
    0和o不分,很難讓人看懂那個namespace的意思,呵呵。  回復  更多評論
      
    # re: Ext中的namespace[未登錄]
    2008-04-04 11:04 | hehe
    之所以能夠這樣做,主要是因為在執行eval('if (typeof ' + rt + ' == "undefined"){' + rt + ' = {};} o = ' + rt + ';');
    時,沒有在rt前面加var 關鍵字,或者說沒有加var關鍵字的變量定義,其作用域是全局的。
    o[d[j]]=o[d[j]] || {};
    o=o[d[j]];
    這兩句完成對象的創建和鏈接引用。
      回復  更多評論
      
    # re: Ext中的namespace
    2008-04-08 12:09 | zhangchao
    @hehe
    編輯的時候我用的是'0',但不知怎么搞的發布后就變成'o'了。既然你已經看出應該是'0',那么你也應該知道namespace怎么用了,呵呵.  回復  更多評論
      
    # re: Ext中的namespace
    2008-04-08 12:11 | zhangchao
    @hehe
    這跟全局變量和局部變量沒有關系,況且'var a=arguments, o=null, i, j, d, rt;'
    已經用var聲明了變量o.  回復  更多評論
      
    # re: Ext中的namespace
    2009-06-29 17:59 | gongmingwind
    請教下
    o和rt不都是局部變量嗎,為什么會創建兩個全局變量呢?  回復  更多評論
      
    # re: Ext中的namespace
    2009-06-29 22:31 | gongmingwind
    @gongmingwind
    這個我弄明白了!呵呵,在js中,沒有定義的變量默認為全局變量。  回復  更多評論
      
    # re: Ext中的namespace
    2009-06-29 22:32 | gongmingwind
    謝謝,你的文章  回復  更多評論
      
    # re: Ext中的namespace
    2009-07-17 17:59 | 得到
    很好  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲成色www久久网站夜月| 高清国语自产拍免费视频国产 | 91香蕉在线观看免费高清| 国产亚洲精品成人a v小说| 天堂亚洲免费视频| 免费人成在线观看网站视频| 337P日本欧洲亚洲大胆艺术图| 国产精品va无码免费麻豆| 亚洲成AV人片高潮喷水| 日本人的色道www免费一区| 亚洲av乱码一区二区三区按摩| 日美韩电影免费看| 日韩在线观看视频免费| 亚洲色欲色欲www在线丝 | 99精品视频在线观看免费播放 | 亚洲国产日韩在线人成下载| 青青视频观看免费99| 77777亚洲午夜久久多喷| 无码视频免费一区二三区| 色婷五月综激情亚洲综合| 午夜一级毛片免费视频| 国产精品亚洲专区在线播放| 免费午夜爽爽爽WWW视频十八禁| 一级特级aaaa毛片免费观看 | 亚洲永久永久永久永久永久精品| 伊人久久免费视频| 亚洲明星合成图综合区在线| 免费做爰猛烈吃奶摸视频在线观看 | 免费a级毛片无码av| 亚洲精品黄色视频在线观看免费资源| 亚洲精品卡2卡3卡4卡5卡区| 67pao强力打造高清免费| 亚洲AV成人一区二区三区在线看| 四虎永久成人免费影院域名| 黄页网站在线视频免费| 国产成人综合亚洲亚洲国产第一页| 91在线手机精品免费观看| 丁香婷婷亚洲六月综合色| 免费v片在线观看| 国产免费无码一区二区| 亚洲国产成人久久99精品|