JavaScript 面向?qū)ο笾臻g
更新時(shí)間:2010年05月04日 14:40:16 作者:
如果寫一堆function難免會(huì)出現(xiàn)變量或函數(shù)的命名沖突,應(yīng)用了命名空間這種情況就從此杜絕了,而且代碼易于管理。
在小項(xiàng)目中對于JavaScript使用,只要寫幾個(gè)function就行了。但在大型項(xiàng)目中,尤其是在開發(fā)追求良好的用戶體驗(yàn)的網(wǎng)站中,如SNS,就會(huì)用到大量的JavaScrpt,有時(shí)JavaScript的工作量勝過了C#,這時(shí)寫一堆function,就會(huì)顯得很亂,雜亂無章,甚至?xí)霈F(xiàn)命名沖突,管理和維護(hù)起來都很麻煩。對于這種情況我們就需要使用面向?qū)ο蟮乃枷雭黹_發(fā)JavaScript。那我們就這樣作罷:
對于一個(gè)項(xiàng)目,首先要有個(gè)命名空間。所以我們首先要做的是定義一個(gè)函數(shù)來注冊命名空間。代碼如下:
// 聲明一個(gè)全局對象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)在來注冊幾個(gè)命名空間試試,就已博客園為例吧,博客園有幾個(gè)模塊“博客”、“新聞”、“小組”......
RegisterNameSpace("cnblogs.blog");
RegisterNameSpace("cnblogs.news");
RegisterNameSpace("cnblogs.group");
事實(shí)上,這里的命名空間就是一個(gè)對象,一個(gè)Object。
作者: cnblogs 祥叔
對于一個(gè)項(xiàng)目,首先要有個(gè)命名空間。所以我們首先要做的是定義一個(gè)函數(shù)來注冊命名空間。代碼如下:
復(fù)制代碼 代碼如下:
// 聲明一個(gè)全局對象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)在來注冊幾個(gè)命名空間試試,就已博客園為例吧,博客園有幾個(gè)模塊“博客”、“新聞”、“小組”......
復(fù)制代碼 代碼如下:
RegisterNameSpace("cnblogs.blog");
RegisterNameSpace("cnblogs.news");
RegisterNameSpace("cnblogs.group");
事實(shí)上,這里的命名空間就是一個(gè)對象,一個(gè)Object。
作者: cnblogs 祥叔
相關(guān)文章
javascript中類的定義及其方式(《javascript高級(jí)程序設(shè)計(jì)》學(xué)習(xí)筆記)
javascript也是一種面向?qū)ο蟮木幊陶Z言。但是javascript中的類相關(guān)的東西(類的定義,原型鏈,繼承等)卻不是很好理解,特別是繼承。2011-07-07
面向?qū)ο蟮腏avascript之一(初識(shí)Javascript)
Javascript是一門極富表現(xiàn)力的語言,在當(dāng)今大行其道的Web浪潮中扮演著非常關(guān)鍵的作用。合理、高效地利用這門技術(shù),可以讓我們的Web世界多姿多彩。首先,我們認(rèn)識(shí)一下這門技術(shù)的幾個(gè)獨(dú)特的特性2012-01-01
JavaScript RegExp方法獲取地址欄參數(shù)(面向?qū)ο?
個(gè)人認(rèn)為循環(huán)用得多不是什么好事。這里推薦一種利用OO思想加上RegExp的方法,使它更靈活、高效。2009-03-03
js創(chuàng)建對象的幾種常用方式小結(jié)(推薦)
最近在看javascript高級(jí)程序設(shè)計(jì),其中對對象的創(chuàng)建做了具體的闡述,綜合起來,總結(jié)了下(je知識(shí)庫javascript專欄由這方面的教程,有興趣的可以去知識(shí)庫看看)2010-10-10

