欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于JavaScript 下namespace 功能的簡(jiǎn)單分析

 更新時(shí)間:2013年07月05日 15:41:51   作者:  
前些天在剝離 百度隨心聽 的播放器引擎時(shí),看到了一個(gè)namespace方法,覺得新奇,當(dāng)然只是對(duì)于我自己而言,我入門js不久,經(jīng)驗(yàn)尚淺
之前看到網(wǎng)易還是新浪還是什么什么網(wǎng)站來(lái)著,也是用類似這種東西的,當(dāng)時(shí)對(duì)js只是九牛一毛的水平,當(dāng)場(chǎng)被嚇傻了。
但這次,我打算親自分析下,以后在看到就不會(huì)迷茫了。
復(fù)制代碼 代碼如下:

//調(diào)用例子:bradio.namespace("bradio.lang.array");
 //下面是百度編譯后的源碼,變量都是a,b,c,d...之后我會(huì)重新寫一個(gè)規(guī)范點(diǎn)的。
 //好了,開始分析
 bradio.namespace = function () { //創(chuàng)建命名空間
     var a = arguments, //["bradio.lang.array"]
         b = null, //用于存放上一級(jí)對(duì)象
         c, d, e, f; //c是計(jì)數(shù)器,d是內(nèi)層循環(huán)的計(jì)數(shù)器,e是拆分后命名空間數(shù)組,f是arguments參數(shù)長(zhǎng)度
     c = 0;
     for (f = a.length; c < f; c++) {
         e = ("" + a[c]).split("."); //拆分命名空間,拆分后 ["bradio", "lang", "array"]
         b = bradio; //基礎(chǔ)對(duì)象,基于這個(gè)對(duì)象進(jìn)行命名空間的添加
         for (d = "bradio" == e[0] ? 1 : 0; d < e.length; d++) //如果第一個(gè)是bradio, 就第二個(gè)開始遍歷 ["bradio","lang","array"]
             b[e[d]] = b[e[d]] || {}, b = b[e[d]]
             //其實(shí)相當(dāng)于
             //b[e[d]] = b[e[d]] || {} //如果當(dāng)前對(duì)象已經(jīng)操作就用當(dāng)前對(duì)象,不存在就賦值空對(duì)象
             //b = b[e[d]] //用字對(duì)象覆蓋b,接下去的循環(huán)基于子對(duì)象添加命名空間
     }
     return b//返回最后一層對(duì)象
 };

下面是整理后的,能看懂的版本
復(fù)制代碼 代碼如下:

//bradio.namespace("bradio.lang.array");
  bradio.namespace = function () { //創(chuàng)建命名空間
      var args = arguments,
          parent = null,
          arr, i, j, len;
      for (i=0, len = args.length; i < len; i++) {
          arr = ("" + args[i]).split(".");
          parent = bradio;
          for(j = "bradio" == arr[0] ? 1 : 0; j < arr.length; j++) {
              parent[ arr[j] ] = parent[ arr[j] ] || {};
              parent = parent[ arr[j] ];
          }
      }
      return parent;
  }

當(dāng)然只是我的理解,如果哪里不是很對(duì),還請(qǐng)各位大俠幫忙指出,以免誤導(dǎo)了大家。

相關(guān)文章

  • javascript indexOf函數(shù)使用說明

    javascript indexOf函數(shù)使用說明

    JavaScript中indexOf函數(shù)方法是返回 String 對(duì)象內(nèi)第一次出現(xiàn)子字符串的字符位置。
    2008-07-07
  • Javascript學(xué)習(xí)筆記5 類和對(duì)象

    Javascript學(xué)習(xí)筆記5 類和對(duì)象

    首先,不得不說,我無(wú)法達(dá)到拋開類和對(duì)象的概念來(lái)看Javascript的境界,對(duì)于Javascript是否是面向?qū)ο蟮恼f法有很多,不過我最認(rèn)同的還是Javascript是一種“基于prototype的面向?qū)ο笳Z(yǔ)言”。
    2010-01-01
  • HTML5之lang屬性與dir屬性的詳解

    HTML5之lang屬性與dir屬性的詳解

    本篇文章是對(duì)HTML5中的lang屬性與dir屬性進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 詳解JavaScript事件循環(huán)機(jī)制

    詳解JavaScript事件循環(huán)機(jī)制

    這篇文章給大家分享了關(guān)于JavaScript事件循環(huán)機(jī)制的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2018-09-09
  • JavaScript中的分號(hào)插入機(jī)制詳細(xì)介紹

    JavaScript中的分號(hào)插入機(jī)制詳細(xì)介紹

    這篇文章主要介紹了JavaScript中的分號(hào)插入機(jī)制詳細(xì)介紹,本文講解JavaScript中各種情況下的分號(hào)插入機(jī)制,需要的朋友可以參考下
    2015-02-02
  • JavaScript編程中布爾對(duì)象的基本使用

    JavaScript編程中布爾對(duì)象的基本使用

    這篇文章主要介紹了JavaScript編程中布爾對(duì)象的基本使用,是JavaScript入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-10-10
  • 基于JavaScript 下namespace 功能的簡(jiǎn)單分析

    基于JavaScript 下namespace 功能的簡(jiǎn)單分析

    前些天在剝離 百度隨心聽 的播放器引擎時(shí),看到了一個(gè)namespace方法,覺得新奇,當(dāng)然只是對(duì)于我自己而言,我入門js不久,經(jīng)驗(yàn)尚淺
    2013-07-07
  • 淺談JavaScript事件的屬性列表

    淺談JavaScript事件的屬性列表

    本文向大家簡(jiǎn)單介紹了javascript事件的屬性列表,非常的詳細(xì),推薦給有相同需求的小伙伴們。
    2015-03-03
  • javascript開發(fā)技術(shù)大全 第4章 直接量與字符集

    javascript開發(fā)技術(shù)大全 第4章 直接量與字符集

    直接量就是在程序中顯示出來(lái)的數(shù)值。javascript直接量包括:字符串、數(shù)字、布爾、數(shù)組、函數(shù)、對(duì)象、和特殊直接
    2011-07-07
  • javascript中call()、apply()的區(qū)別

    javascript中call()、apply()的區(qū)別

    這篇文章主要介紹了javascript中call()、apply()的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評(píng)論