當前位置:才華齋>設計>網頁設計>

JavaScript中建立字典物件(dictionary)的例項

網頁設計 閱讀(2.88W)

對於JavaScript來說,其自身的Array物件僅僅是個陣列,無法提供通過關鍵字來獲取儲存的資料,jQuery原始碼中提供了一種非常好的方式來解決這個問題,先看一下原始碼:

JavaScript中建立字典物件(dictionary)的例項

複製程式碼 程式碼如下:

function createCache() {

var keys = [];

function cache(key, value) {

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

// properties (see Issue #157)

if ((key += " ") > eLength) {

// Only keep the most recent entries

cache[t()];

}

return (cache[key] = value);

}

return cache;

}

上述原始碼是建立一個編譯結果的快取,程式碼呼叫方式如下:

複製程式碼 程式碼如下:

var codecache = createCache();

原始碼中,keys用來儲存鍵,而cache物件用來儲存鍵值對,並通過全域性變數eLength控制鍵的最大數量,若超過該數量,則自動刪除第一個鍵及鍵值對。

本程式碼利用了閉包的`結構,使外部程式碼無法訪問到keys變數,這樣就能確保keys變數的安全性。當然,由於JavaScript語句的特點,外部程式碼還是可以通過修改cache屬性使鍵與鍵值對不匹配。不過,只要不故意惡搞,這本身應該也沒有太大的關係。

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