JavaScript 面向?qū)ο笾臻g
更新時間:2010年05月04日 14:40:16 作者:
如果寫一堆function難免會出現(xiàn)變量或函數(shù)的命名沖突,應(yīng)用了命名空間這種情況就從此杜絕了,而且代碼易于管理。
在小項目中對于JavaScript使用,只要寫幾個function就行了。但在大型項目中,尤其是在開發(fā)追求良好的用戶體驗的網(wǎng)站中,如SNS,就會用到大量的JavaScrpt,有時JavaScript的工作量勝過了C#,這時寫一堆function,就會顯得很亂,雜亂無章,甚至?xí)霈F(xiàn)命名沖突,管理和維護起來都很麻煩。對于這種情況我們就需要使用面向?qū)ο蟮乃枷雭黹_發(fā)JavaScript。那我們就這樣作罷:
對于一個項目,首先要有個命名空間。所以我們首先要做的是定義一個函數(shù)來注冊命名空間。代碼如下:
// 聲明一個全局對象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)造命名空間對象(假如不存在的話)的語句
strEval += "if (typeof(" + strNS + ") == 'undefined') " + strNS + " = new Object();"
}
if (strEval != "") eval(strEval);
}
好了,現(xiàn)在來注冊幾個命名空間試試,就已博客園為例吧,博客園有幾個模塊“博客”、“新聞”、“小組”......
RegisterNameSpace("cnblogs.blog");
RegisterNameSpace("cnblogs.news");
RegisterNameSpace("cnblogs.group");
事實上,這里的命名空間就是一個對象,一個Object。
作者: cnblogs 祥叔
對于一個項目,首先要有個命名空間。所以我們首先要做的是定義一個函數(shù)來注冊命名空間。代碼如下:
復(fù)制代碼 代碼如下:
// 聲明一個全局對象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)造命名空間對象(假如不存在的話)的語句
strEval += "if (typeof(" + strNS + ") == 'undefined') " + strNS + " = new Object();"
}
if (strEval != "") eval(strEval);
}
好了,現(xiàn)在來注冊幾個命名空間試試,就已博客園為例吧,博客園有幾個模塊“博客”、“新聞”、“小組”......
復(fù)制代碼 代碼如下:
RegisterNameSpace("cnblogs.blog");
RegisterNameSpace("cnblogs.news");
RegisterNameSpace("cnblogs.group");
事實上,這里的命名空間就是一個對象,一個Object。
作者: cnblogs 祥叔
相關(guān)文章
JavaScript中使用構(gòu)造函數(shù)實現(xiàn)繼承的代碼
JavaScript中借用構(gòu)造函數(shù)實現(xiàn)繼承的代碼,需要的朋友可以參考下。2010-08-08DOMAssitant最新版 DOMAssistant 2.5發(fā)布
google code上的project ,值得大家學(xué)習(xí)它的類庫2007-12-12用JavaScript實現(xiàn)單繼承和多繼承的簡單方法
JavaScript是一種強大的多泛型編程語言,其融合了面向過程、面向?qū)ο蠛秃瘮?shù)式編程于一身,具備強大的表現(xiàn)能力。2009-03-03AppBaseJs 類庫 網(wǎng)上常用的javascript函數(shù)及其他js類庫寫的
AppBaseJs類庫。一個借鑒了網(wǎng)上常用的函數(shù)及其他js類庫寫的,方便大家的調(diào)用。2010-03-03JavaScript 類的定義和引用 JavaScript高級培訓(xùn) 自定義對象
在Java語言中,我們可以定義自己的類,并根據(jù)這些類創(chuàng)建對象來使用,在Javascript中,我們也可以定義自己的類,例如定義User類、Hashtable類等等。2010-04-04javascript面向?qū)ο蟮姆绞綄崿F(xiàn)的彈出層效果代碼
由于本人以前是.net程序員,所以即使現(xiàn)在在做前端,也習(xí)慣于用面向?qū)ο蟮姆绞骄帉慾s腳本,我想如果你以前也是或者現(xiàn)在還是名第三代程序員的話,應(yīng)該對此并不陌生。2010-01-01