首頁  >  文章  >  web前端  >  關於JavaScript命名空間的一些心得_javascript技巧

關於JavaScript命名空間的一些心得_javascript技巧

WBOY
WBOY原創
2016-05-16 16:45:301671瀏覽

最近重構東西,碰到命名空間的設定,搜了一些知識,請教了一些高手,把自己的心得寫下來
相信大家都知道,window是頂級的,這裡就不寫window了,先忽略

1:關於頂級

複製代碼 代碼如下:
var ns = ns || {};

可以看到,其實就是如果發現沒有這個對象,就自動建立new Object();如果有,就直接使用這個對象,這樣就不會覆蓋。
2: 第二級,當然也可以在頂層的ns下創建第二級,即
複製程式碼 程式碼如下:
ns.ModuleClass = {};

可以看到,在ns下創建了一個類,當然也可以繼續創建類裡的方法,即是這種:
複製程式碼 程式碼如下:
ns.ModuleClass.method1= function() {/ ///};

3:多層我該怎麼做呢,例如這種com.qw.view,我想把他設成一個命名空間,這就要對每一個點分隔的名稱進行分別設定命名空間,分別設成物件

我們看一個例子,把他設定在window下:

複製程式碼 程式碼如下:

function namespace(sSpace) {
  var arr = sSpace.split('.'),i = 0,nameIi = 0,nameI ;
  var root = window;
  for (; nameI = arr[i ];) {
    if (!root[nameI]) {
     if (!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 = {};;;;;;;;;;;;;;;;;;;;;;;;;;;; }
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn