最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript 面向?qū)ο笾臻g

 更新時(shí)間:2010年05月04日 14:40:16   作者:  
如果寫(xiě)一堆function難免會(huì)出現(xiàn)變量或函數(shù)的命名沖突,應(yīng)用了命名空間這種情況就從此杜絕了,而且代碼易于管理。
在小項(xiàng)目中對(duì)于JavaScript使用,只要寫(xiě)幾個(gè)function就行了。但在大型項(xiàng)目中,尤其是在開(kāi)發(fā)追求良好的用戶體驗(yàn)的網(wǎng)站中,如SNS,就會(huì)用到大量的JavaScrpt,有時(shí)JavaScript的工作量勝過(guò)了C#,這時(shí)寫(xiě)一堆function,就會(huì)顯得很亂,雜亂無(wú)章,甚至?xí)霈F(xiàn)命名沖突,管理和維護(hù)起來(lái)都很麻煩。對(duì)于這種情況我們就需要使用面向?qū)ο蟮乃枷雭?lái)開(kāi)發(fā)JavaScript。那我們就這樣作罷:

 對(duì)于一個(gè)項(xiàng)目,首先要有個(gè)命名空間。所以我們首先要做的是定義一個(gè)函數(shù)來(lái)注冊(cè)命名空間。代碼如下:
復(fù)制代碼 代碼如下:

// 聲明一個(gè)全局對(duì)象RegisterNameSpace函數(shù),參數(shù)為名稱空間全路徑,如"cnblogs.blog"
RegisterNameSpace = function(fullName) {
// 將命名空間切成N部分
var nsArray = fullName.split('.');
var strEval = "";
var strNS = "";
for (var i = 0; i < nsArray.length; i++) {
if (i != 0){
strNS += ".";
}
strNS += nsArray[i];
// 依次創(chuàng)建構(gòu)造命名空間對(duì)象(假如不存在的話)的語(yǔ)句
strEval += "if (typeof(" + strNS + ") == 'undefined') " + strNS + " = new Object();"
}
if (strEval != "") eval(strEval);
}

好了,現(xiàn)在來(lái)注冊(cè)幾個(gè)命名空間試試,就已博客園為例吧,博客園有幾個(gè)模塊“博客”、“新聞”、“小組”......
復(fù)制代碼 代碼如下:

RegisterNameSpace("cnblogs.blog");
RegisterNameSpace("cnblogs.news");
RegisterNameSpace("cnblogs.group");

事實(shí)上,這里的命名空間就是一個(gè)對(duì)象,一個(gè)Object。
作者: cnblogs 祥叔

相關(guān)文章

最新評(píng)論

西盟| 包头市| 尖扎县| 无锡市| 偏关县| 南宁市| 宝清县| 时尚| 电白县| 涞源县| 镇巴县| 古丈县| 忻州市| 施秉县| 铜陵市| 施甸县| 菏泽市| 德昌县| 中阳县| 诸城市| 榆中县| 克山县| 滨州市| 凤庆县| 那坡县| 泽库县| 曲松县| 正定县| 临城县| 泰顺县| 凤凰县| 津市市| 云阳县| 雅江县| 贡嘎县| 恩平市| 明光市| 万宁市| 会同县| 扎囊县| 云南省|