<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類有個(gè)namespace方法,該方法的作用是把傳入的參數(shù)轉(zhuǎn)換成對(duì)象.使用該方法的目的主要在于可以區(qū)分類名相同的類,這有點(diǎn)和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]];
            }

        }

    }
    從代碼可以看出,如果我們傳入的字符串參數(shù)是以"."分割的,那么將會(huì)創(chuàng)建多個(gè)對(duì)象,比如:
    Ext.namespace('system.corp');
    則會(huì)創(chuàng)建2個(gè)對(duì)象,相當(dāng)于執(zhí)行了下面的代碼:
    system = {};
    system.corp 
    = {};
    這樣,我們?cè)谧远x類的時(shí)候就能這樣使用:
    Ext.namespace('system.corp');

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

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

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

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

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 99久久免费看国产精品| 免费无码又爽又刺激聊天APP| 久久不见久久见免费影院www日本| 无码囯产精品一区二区免费| 亚洲日本在线播放| 午夜国产羞羞视频免费网站| 你懂得的在线观看免费视频| 亚洲嫩模在线观看| 四虎永久成人免费| 一区二区三区四区免费视频| 亚洲精品无码久久久久YW| 亚洲最大激情中文字幕| 国产1000部成人免费视频| 日韩一区二区三区免费播放| 久久精品a亚洲国产v高清不卡 | 亚洲国产精品乱码一区二区| 99免费在线视频| youjizz亚洲| 亚洲午夜久久久影院伊人| 免费电视剧在线观看| 精品无码一级毛片免费视频观看 | 爱情岛论坛网亚洲品质自拍| 免费无码毛片一区二区APP| 亚洲午夜无码毛片av久久京东热| 大学生一级毛片免费看| 久久久WWW免费人成精品| 亚洲国产一区二区三区在线观看| 一级女人18毛片免费| 一区二区视频在线免费观看| 91嫩草亚洲精品| 亚洲精品色午夜无码专区日韩| 国产免费A∨在线播放| 亚洲熟妇成人精品一区| 久久久久久a亚洲欧洲AV| 亚洲精品在线视频| 成人黄18免费视频| 最近免费最新高清中文字幕韩国| 亚洲视频免费在线观看| 久久精品亚洲福利| 成人免费777777| 青青青国产在线观看免费网站|