首頁  >  文章  >  web前端  >  JavaScript中建立字典物件(dictionary)實例_javascript技巧

JavaScript中建立字典物件(dictionary)實例_javascript技巧

WBOY
WBOY原創
2016-05-16 16:06:472147瀏覽

對於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對象,因為其未提供主鍵重複的判斷等關鍵功能,有興趣的朋友們可以完善它。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn