国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

關(guān)于JavaScript命名空間的一些心得

2019-11-20 14:45:09
字體:
供稿:網(wǎng)友

最近重構(gòu)東西,碰到命名空間的設(shè)定,搜了一些知識(shí),請(qǐng)教了一些高手,把自己的心得寫下來
相信大家都知道,window是頂級(jí)的,這里就不寫window了,先忽略

1:關(guān)于頂級(jí)

復(fù)制代碼 代碼如下:
var ns = ns || {};

可以看到,其實(shí)就是如果發(fā)現(xiàn)沒有這個(gè)對(duì)象,就自動(dòng)創(chuàng)建new Object();如果有,就直接使用這個(gè)對(duì)象,這樣就不會(huì)覆蓋。
2: 第二級(jí),當(dāng)然也可以在頂級(jí)的ns下創(chuàng)建第二級(jí),即
復(fù)制代碼 代碼如下:
ns.ModuleClass = {};

可以看到,在ns下創(chuàng)建了一個(gè)類,當(dāng)然也可以繼續(xù)創(chuàng)建類里的方法,即是這種:
復(fù)制代碼 代碼如下:
ns.ModuleClass.method1= function() {////};

3:多級(jí)應(yīng)該怎么做呢,比如這種com.qw.view,我想把他設(shè)成一個(gè)命名空間,這就要對(duì)每一個(gè)點(diǎn)分隔的名稱進(jìn)行分別設(shè)置命名空間,分別設(shè)成對(duì)象

我們看一個(gè)例子,把他設(shè)置在window下:

復(fù)制代碼 代碼如下:

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:列一下常用的,簡單快捷的設(shè)置命名空間的小技巧吧

復(fù)制代碼 代碼如下:

if (!window.ns) {
  window.ns = {};
}
var ns;
if(typeof ns == "undefined"){
  ns = {};
}
if(typeof ns.ClassName == "undefined"){
  ns.ClassName = {};
}

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 喀喇| 宁强县| 常山县| 柘城县| 清远市| 麻阳| 金门县| 山东省| 乐清市| 乌拉特后旗| 南澳县| 长治县| 息烽县| 原平市| 朔州市| 兴山县| 玛纳斯县| 板桥市| 政和县| 咸丰县| 曲阜市| 宣威市| 北流市| 临江市| 南雄市| 永安市| 海兴县| 富宁县| 如东县| 石河子市| 仁寿县| 白城市| 湘乡市| 正镶白旗| 金昌市| 安溪县| 额尔古纳市| 沂水县| 拜泉县| 江阴市| 东光县|