JavaScript中建立字典物件(dictionary)的例項
對於JavaScript來說,其自身的Array物件僅僅是個陣列,無法提供通過關鍵字來獲取儲存的資料,jQuery原始碼中提供了一種非常好的方式來解決這個問題,先看一下原始碼:
複製程式碼 程式碼如下:
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物件,因為其未提供主鍵重複的判斷等關鍵功能,有興趣的朋友們可以完善它。
-
SQL語句型別的標準模式
1、查詢語句:主要是由select關鍵字完成2、事務控制語句:主要由commit、rollback和savepoint三個關鍵字完成3、DML(資料操作語言)語句:主要由、update和三個關鍵字完成4、DDL(資料定義語言)語句:主要由create、alter、drop和truncate四個關鍵字完成5、DCL(資料控制...
-
如何理解Javascript的caller,callee,call,apply區別
在提到上述的概念之前,首先想說說javascript中函式的隱含引數:argumentsarguments該物件代表正在執行的函式和呼叫它的函式的引數。[function.]arguments[n]引數function:選項。當前正在執行的Function物件的名字。n:選項。要傳遞給Function物件的從0開始的引數值...
-
asp下去除超連結函式
複製程式碼程式碼如下:<%FunctionReplaceUrl2(HTMLstr)Dimn,str1,str2,str3,str4HTMLstr=Lcase(HTMLstr)Forn=1toUbound(Split(HTMLstr,"(.+?)"RegRemoveHref=ace(HTMLstr,"$1")ENDFunction...
-
JavaScript中的style.cssText使用教程分解
很多人用過r、lay等直接設定元素的.樣式屬性,但是ext用過的人就不多了。cssText本質是什麼?cssText的本質就是設定HTML元素的style屬性值。cssText怎麼用?複製程式碼程式碼如下:lementById("d1")ext="color:red;font-size:13px;";看了這個示例後,相信不說,也知道ext是什...
相關文章
- 有關JavaScript中的prototype.bind()方法介紹
- javascript中String物件的slice()方法
- 國中英語寫作範文:My Happy Times During Winter Vacation
- 英語閱讀:VIT declines to acquire Ang Mo Kio property
- Javascript中設立物件的ReadOnly屬性
- JavaScript如何實現JSON.stringify
- 如何在Javascript中為String物件新增trim,ltrim,rtrim方法
- My Happy Times During Winter Vacation國中英語作文
- 好奇心與創造能力英語作文 Curiosity and creativity
- JavaScript在Android的WebView中parseInt函式轉換不正確