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

JavaScript 面向對象之命名空間

 更新時間:2010年05月04日 14:40:16   作者:  
如果寫一堆function難免會出現變量或函數的命名沖突,應用了命名空間這種情況就從此杜絕了,而且代碼易于管理。
在小項目中對于JavaScript使用,只要寫幾個function就行了。但在大型項目中,尤其是在開發(fā)追求良好的用戶體驗的網站中,如SNS,就會用到大量的JavaScrpt,有時JavaScript的工作量勝過了C#,這時寫一堆function,就會顯得很亂,雜亂無章,甚至會出現命名沖突,管理和維護起來都很麻煩。對于這種情況我們就需要使用面向對象的思想來開發(fā)JavaScript。那我們就這樣作罷:

 對于一個項目,首先要有個命名空間。所以我們首先要做的是定義一個函數來注冊命名空間。代碼如下:
復制代碼 代碼如下:

// 聲明一個全局對象RegisterNameSpace函數,參數為名稱空間全路徑,如"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)建構造命名空間對象(假如不存在的話)的語句
strEval += "if (typeof(" + strNS + ") == 'undefined') " + strNS + " = new Object();"
}
if (strEval != "") eval(strEval);
}

好了,現在來注冊幾個命名空間試試,就已博客園為例吧,博客園有幾個模塊“博客”、“新聞”、“小組”......
復制代碼 代碼如下:

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

事實上,這里的命名空間就是一個對象,一個Object。
作者: cnblogs 祥叔

相關文章

最新評論

镇康县| 万全县| 小金县| 清河县| 明光市| 白水县| 河西区| 韩城市| 临泉县| 红河县| 剑川县| 深泽县| 福建省| 临潭县| 克什克腾旗| 徐汇区| 宜宾市| 花莲市| 根河市| 彭州市| 南靖县| 义乌市| 临西县| 连州市| 古田县| 泊头市| 开封县| 无极县| 黑河市| 监利县| 阿克陶县| 维西| 巨野县| 溧阳市| 丹阳市| 阿坝县| 黄浦区| 工布江达县| 周口市| 富阳市| 淳化县|