JavaScript中創(chuàng)建字典對(duì)象(dictionary)的實(shí)例

    時(shí)間:2024-07-31 10:08:38 JavaScript 我要投稿
    • 相關(guān)推薦

    JavaScript中創(chuàng)建字典對(duì)象(dictionary)的實(shí)例

      對(duì)于JavaScript來(lái)說,其自身的Array對(duì)象僅僅是個(gè)數(shù)組,無(wú)法提供通過關(guān)鍵字來(lái)獲取保存的數(shù)據(jù),jQuery源碼中提供了一種非常好的方式來(lái)解決這個(gè)問題,先看一下源碼:

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

      function createCache() {

      var keys = [];

      function cache(key, value) {

      // Use (key + " ") to avoid collision with native prototype

      // properties (see Issue #157)

      if (keys.push(key += " ") > Expr.cacheLength) {

      // Only keep the most recent entries

       cache[keys.shift()];

      }

      return (cache[key] = value);

      }

      return cache;

      }

      上述源碼是創(chuàng)建一個(gè)編譯結(jié)果的緩存,代碼調(diào)用方式如下:

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

      var codecache = createCache();

      源碼中,keys用來(lái)保存鍵,而cache對(duì)象用來(lái)保存鍵值對(duì),并通過全局變量Expr.cacheLength控制鍵的最大數(shù)量,若超過該數(shù)量,則自動(dòng)刪除第一個(gè)鍵及鍵值對(duì)。

      本代碼利用了閉包的結(jié)構(gòu),使外部代碼無(wú)法訪問到keys變量,這樣就能確保keys變量的安全性。當(dāng)然,由于JavaScript語(yǔ)句的特點(diǎn),外部代碼還是可以通過修改cache屬性使鍵與鍵值對(duì)不匹配。不過,只要不故意惡搞,這本身應(yīng)該也沒有太大的關(guān)系。

      當(dāng)然,它也不能宣誓一個(gè)完善的dictionary對(duì)象,因?yàn)槠湮刺峁┲麈I重復(fù)的判斷等關(guān)鍵功能,有興趣的朋友們可以完善它。

    【JavaScript中創(chuàng)建字典對(duì)象(dictionary)的實(shí)例】相關(guān)文章:

    javascript面向?qū)ο笾械膶?duì)象怎么理解09-02

    JavaScript中push(),join() 函數(shù)實(shí)例詳解09-05

    JavaScript中的三種對(duì)象10-24

    JavaScript fontcolor方法入門實(shí)例07-07

    Javascript中arguments對(duì)象的詳解和使用方法08-20

    javascript克隆對(duì)象深度介紹07-25

    javascript閉包的定義及應(yīng)用實(shí)例分析08-25

    PHP對(duì)象注入的實(shí)例分析08-27

    使用ajax操作JavaScript對(duì)象的方法09-28

    關(guān)于javascript對(duì)象之內(nèi)置和對(duì)象Math的使用方法10-08

    91久久大香伊蕉在人线_国产综合色产在线观看_欧美亚洲人成网站在线观看_亚洲第一无码精品立川理惠

      亚洲中文字幕自拍一区 | 伊人久久大香线蕉综合爱首页 | 亚洲国产日韩人妖另类 | 在线观看国产高清a | 色综合综合久久88网色鬼 | 亚洲色偷国产一区二区三区 |