最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2015年03月31日 09:59:12   投稿:junjie  
這篇文章主要介紹了JavaScript中創(chuàng)建字典對(duì)象(dictionary)實(shí)例,本文直接給出了實(shí)現(xiàn)的源碼,并給出了使用示例,需要的朋友可以參考下

對(duì)于JavaScript來(lái)說(shuō),其自身的Array對(duì)象僅僅是個(gè)數(shù)組,無(wú)法提供通過(guò)關(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
   delete 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ì),并通過(guò)全局變量Expr.cacheLength控制鍵的最大數(shù)量,若超過(guò)該數(shù)量,則自動(dòng)刪除第一個(gè)鍵及鍵值對(duì)。
本代碼利用了閉包的結(jié)構(gòu),使外部代碼無(wú)法訪問到keys變量,這樣就能確保keys變量的安全性。當(dāng)然,由于JavaScript語(yǔ)句的特點(diǎn),外部代碼還是可以通過(guò)修改cache屬性使鍵與鍵值對(duì)不匹配。不過(guò),只要不故意惡搞,這本身應(yīng)該也沒有太大的關(guān)系。

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

相關(guān)文章

最新評(píng)論

平阴县| 南阳市| 涪陵区| 棋牌| 青阳县| 太和县| 博野县| 阿拉善盟| 阿拉善盟| 灵宝市| 阿城市| 精河县| 山丹县| 汝城县| 九江县| 碌曲县| 黑河市| 锡林浩特市| 济南市| 蒙城县| 旌德县| 山东| 阳高县| 昔阳县| 恭城| 商水县| 菏泽市| 北票市| 赫章县| 涡阳县| 龙陵县| 长汀县| 永城市| 连南| 太康县| 碌曲县| 仙居县| 丽江市| 周宁县| 清水县| 进贤县|