在小項目中對於JavaScript使用,只要寫幾個function就行了。但在大型項目中,尤其是在開發追求良好的使用者體驗的網站中,如SNS,就會用到大量的JavaScrpt,有時JavaScript的工作量勝過了C#,這時寫一堆function,就會顯得很亂,雜亂無章,甚至會出現命名衝突,管理和維護起來都很麻煩。對於這種情況我們就需要使用物件導向的思想來開發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];
// 依次建立構造命名空間對象(假如不存在的話)的語句
strEval += "if (typeof(" + strNS + ") == 'undefined') " + strNS + " = new Object();"
}
if (strEval != "") eval(strEval);
}
好了,現在來註冊幾個命名空間試試,就已部落格園為例吧,部落格園有幾個模組“部落格”、“新聞”、“小組”...... 複製代碼 代碼如下:RegisterNameSpace("cnblogs.blog");
RegisterNameSpace("cnblogs.news");
RegisterNameSpace("cnblogs.group");
事實上,這裡的命名空間就是一個對象,一個Object。
作者: cnblogs 祥叔