js建立字典物件例項

admin發表於2017-04-05

本章節介紹一下介紹一下如何建立字典物件。

雖然陣列有點類似,但是它畢竟是一個陣列無法提供通過關鍵字來獲取儲存的資料。

不過jQuery原始碼給我們提供了一個非常好的解決方案,程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
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;
}

上面的程式碼就是jQuery原始碼中的一段,呼叫方式如下:

[JavaScript] 純文字檢視 複製程式碼
var codecache = createCache();

原始碼中,keys用來儲存鍵,而cache物件用來儲存鍵值對,並通過全域性變數Expr.cacheLength控制鍵的最大數量,若超過該數量,則自動刪除第一個鍵及鍵值對。本程式碼利用了閉包的結構,使外部程式碼無法訪問到keys變數,這樣就能確保keys變數的安全性。

當然,由於JavaScript語句的特點,外部程式碼還是可以通過修改cache屬性使鍵與鍵值對不匹配。

相關文章