国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript中創建字典對象(dictionary)實例

2019-11-20 12:49:44
字體:
來源:轉載
供稿:網友

對于JavaScript來說,其自身的Array對象僅僅是個數組,無法提供通過關鍵字來獲取保存的數據,jQuery源碼中提供了一種非常好的方式來解決這個問題,先看一下源碼:

復制代碼 代碼如下:

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;
}

上述源碼是創建一個編譯結果的緩存,代碼調用方式如下:

復制代碼 代碼如下:

var codecache = createCache();

源碼中,keys用來保存鍵,而cache對象用來保存鍵值對,并通過全局變量Expr.cacheLength控制鍵的最大數量,若超過該數量,則自動刪除第一個鍵及鍵值對。
本代碼利用了閉包的結構,使外部代碼無法訪問到keys變量,這樣就能確保keys變量的安全性。當然,由于JavaScript語句的特點,外部代碼還是可以通過修改cache屬性使鍵與鍵值對不匹配。不過,只要不故意惡搞,這本身應該也沒有太大的關系。

當然,它也不能宣誓一個完善的dictionary對象,因為其未提供主鍵重復的判斷等關鍵功能,有興趣的朋友們可以完善它。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金湖县| 长武县| 长岭县| 永善县| 阿荣旗| 南宫市| 邹平县| 醴陵市| 钦州市| 淳化县| 青龙| 米易县| 台安县| 泸水县| 大化| 闽清县| 汶上县| 酒泉市| 象州县| 三原县| 民丰县| 聊城市| 朝阳县| 城市| 水富县| 宁化县| 兰州市| 四会市| 老河口市| 依兰县| 台湾省| 金阳县| 兴业县| 泰兴市| 黑山县| 唐海县| 东阳市| 修武县| 奉节县| 兴宁市| 东宁县|