關(guān)于JavaScript命名空間的一些心得
最近重構(gòu)東西,碰到命名空間的設(shè)定,搜了一些知識(shí),請(qǐng)教了一些高手,把自己的心得寫下來
相信大家都知道,window是頂級(jí)的,這里就不寫window了,先忽略
1:關(guān)于頂級(jí)
可以看到,其實(shí)就是如果發(fā)現(xiàn)沒有這個(gè)對(duì)象,就自動(dòng)創(chuàng)建new Object();如果有,就直接使用這個(gè)對(duì)象,這樣就不會(huì)覆蓋。
2: 第二級(jí),當(dāng)然也可以在頂級(jí)的ns下創(chuàng)建第二級(jí),即
可以看到,在ns下創(chuàng)建了一個(gè)類,當(dāng)然也可以繼續(xù)創(chuàng)建類里的方法,即是這種:
3:多級(jí)應(yīng)該怎么做呢,比如這種com.qw.view,我想把他設(shè)成一個(gè)命名空間,這就要對(duì)每一個(gè)點(diǎn)分隔的名稱進(jìn)行分別設(shè)置命名空間,分別設(shè)成對(duì)象
我們看一個(gè)例子,把他設(shè)置在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;
}
可以看到確實(shí)是我上面說的思路,用了一個(gè)遍歷,把分隔的全部設(shè)成對(duì)象,這樣每個(gè)分隔的都可以單獨(dú)用。
4:列一下常用的,簡(jiǎn)單快捷的設(shè)置命名空間的小技巧吧
if (!window.ns) {
window.ns = {};
}
var ns;
if(typeof ns == "undefined"){
ns = {};
}
if(typeof ns.ClassName == "undefined"){
ns.ClassName = {};
}
相關(guān)文章
使用watch在微信小程序中實(shí)現(xiàn)全局狀態(tài)共享
這篇文章主要給大家介紹了關(guān)于如何使用watch在小程序中實(shí)現(xiàn)全局狀態(tài)共享的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用微信小程序具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
微信開發(fā) 使用picker封裝省市區(qū)三級(jí)聯(lián)動(dòng)模板
這篇文章主要學(xué)習(xí)微信開發(fā),如何使用picker封裝省市區(qū)三級(jí)聯(lián)動(dòng)模板,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
Highcharts 非常實(shí)用的Javascript統(tǒng)計(jì)圖demo示例
官網(wǎng)實(shí)例中給出了各式各樣的demo,可以參照document修改自己需要的即可,本文實(shí)現(xiàn)的是一個(gè)學(xué)生成績走勢(shì)demo,有需求的朋友可以參考下哈,希望對(duì)大家有所幫助2013-07-07

