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