首頁  >  文章  >  web前端  >  基於JavaScript 下namespace 功能的簡單分析_基礎知識

基於JavaScript 下namespace 功能的簡單分析_基礎知識

WBOY
WBOY原創
2016-05-16 17:29:551025瀏覽

之前看到網易還是新浪還是什麼什麼網站來著,也是用類似這種東西的,當時對js只是九牛一毛的水平,當場被嚇傻了。
但這次,我打算親自分析下,以後在看到就不會迷茫了。

複製代碼 代碼如下:

//調用例子:bradio.namespace("bradio. lang.array");
 //下面是百度編譯後的原始碼,變數都是a,b,c,d...之後我會重新寫一個規範點的。
 //好了,開始分析
 bradio.namespace = function () { //建立命名空間
     var a = arguments, //["bradio null, //用來存放上一級物件
         c, d, e, f; //c是計數器,d是內層循環的計數器,e是分割後命名空間數組,f是arguments參數長度
     c = 0;
     for (f = a.length; c          e = ("" a[c]).split(".      e = ("" a[c]).split(".").命名空間,分割後["bradio", "lang", "array"]
         b = bradio; //基礎對象,以此物件為命名空間的新增化
     = e[0] ? 1 : 0; d             [e[d]] = b[e[d]] || {}, b = b[e[d]]
             //其實相當於
         //其實相當於
 [e[d]] || {} //如果當前對像已經操作就用當前對象,不存在就賦值空對象
             //b = b[e[d]] //用字對象覆蓋b,接下去的循環基於子物件加入命名空間
     }
     return b//回傳最後一層物件
 };

能看懂後的,能理解版本
複製程式碼 程式碼如下:

//bradio.namespace("bradio. array");
  bradio.namespace = function () { //建立命名空間
      var args = arguments,
     
      for (i=0, len = args.length; i           arr = ("" args[i]).split(".");             }🎜>              parent = parent[ arr[j] ];
         🎜>

當然只是我的理解,如果哪裡不是很對,還請各位大俠幫忙指出,以免誤導了大家。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn