關于JavaScript命名空間的一些心得
更新時間:2014年06月07日 10:51:09 作者:
這篇文章主要介紹了關于JavaScript命名空間的一些心得,分別給出了頂級、多級命名空間的例子,需要的朋友可以參考下
最近重構東西,碰到命名空間的設定,搜了一些知識,請教了一些高手,把自己的心得寫下來
相信大家都知道,window是頂級的,這里就不寫window了,先忽略
1:關于頂級
復制代碼 代碼如下:
var ns = ns || {};
可以看到,其實就是如果發(fā)現沒有這個對象,就自動創(chuàng)建new Object();如果有,就直接使用這個對象,這樣就不會覆蓋。
2: 第二級,當然也可以在頂級的ns下創(chuàng)建第二級,即
復制代碼 代碼如下:
ns.ModuleClass = {};
可以看到,在ns下創(chuàng)建了一個類,當然也可以繼續(xù)創(chuàng)建類里的方法,即是這種:
復制代碼 代碼如下:
ns.ModuleClass.method1= function() {////};
3:多級應該怎么做呢,比如這種com.qw.view,我想把他設成一個命名空間,這就要對每一個點分隔的名稱進行分別設置命名空間,分別設成對象
我們看一個例子,把他設置在window下:
復制代碼 代碼如下:
function namespace(sSpace) {
var arr = sSpace.split('.'),i = 0,nameI;
var root = window;
for (; nameI = arr[i++];) {
if (!root[nameI]) {
root[nameI] = {};
}
root = root[nameI];
}
return root;
}
可以看到確實是我上面說的思路,用了一個遍歷,把分隔的全部設成對象,這樣每個分隔的都可以單獨用。
4:列一下常用的,簡單快捷的設置命名空間的小技巧吧
復制代碼 代碼如下:
if (!window.ns) {
window.ns = {};
}
var ns;
if(typeof ns == "undefined"){
ns = {};
}
if(typeof ns.ClassName == "undefined"){
ns.ClassName = {};
}
相關文章
JS.GetAllChild(element,deep,condition)使用介紹
JS.GetAllChild()獲取所有子節(jié)點,想必大家都知道吧,具體的使用方法如下,感興趣的朋友可以參考下2013-09-09JavaScript學習筆記之檢測客戶端類型是(引擎、瀏覽器、平臺、操作系統(tǒng)、移動設備)
這篇文章主要介紹了JavaScript學習筆記之檢測客戶端類型是(引擎、瀏覽器、平臺、操作系統(tǒng)、移動設備)的相關資料,需要的朋友可以參考下2015-12-12JavaScript實現擦玻璃效果分析鼠標移動響應時間粒度問題
這篇文章主要為大家介紹了JavaScript實現擦玻璃效果分析鼠標移動響應時間粒度問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10詳解webpack 打包文件體積過大解決方案(code splitting)
這篇文章主要介紹了webpack 打包文件體積過大解決方案(code splitting),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04