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對象,因為其未提供主鍵重複的判斷等關鍵功能,有興趣的朋友們可以完善它。
-
如何理解Javascript的caller,callee,call,apply區別
在提到上述的概念之前,首先想説説javascript中函數的隱含參數:argumentsarguments該對象代表正在執行的函數和調用它的函數的參數。[function.]arguments[n]參數function:選項。當前正在執行的Function對象的名字。n:選項。要傳遞給Function對象的從0開始的參數值...
-
jQuery中的read和JavaScript中的onload函數的區別在哪
在JavaScript中,onload函數是最經常使用的,幾乎涉及到JavaScript的童鞋都少不了要接觸它。這個函數的作用就是等待網頁完全裝載完了以後再去執行代碼塊內的語句,因為按照文檔流的執行順序,通常用於頭部加載JavaScript的`時候需要用到。複製代碼代碼如下:ad=functio...
-
ASP 時間函數及獲取服務器時間的寫法
一、常用的ASP時間函數1、now()獲取當前系統日期和時間,ASP輸出格式:<%=now()%>2、Year(now())獲取年份,ASP輸出格式:<%=year(now())%>3、Month(now())獲取當前月份,ASP輸出格式:<%=month(now())%>4、day(now())獲取當天數,ASP輸出格式:<%=day(now())%>5、hour(now())...
-
如何理解Javascript的caller,callee,call,apply區別
在提到上述的概念之前,首先想説説javascript中函數的隱含參數:argumentsarguments該對象代表正在執行的函數和調用它的函數的參數。[function.]arguments[n]參數function:選項。當前正在執行的Function對象的名字。n:選項。要傳遞給Function對象的從0開始的參數值...
相關文章
- My Happy Times During Winter Vacation國中英語作文
- 有關JavaScript中的prototype.bind()方法介紹
- javascript中String對象的slice()方法
- 如何在Javascript中為String對象添加trim,ltrim,rtrim方法
- 好奇心與創造能力英語作文 Curiosity and creativity
- JavaScript如何實現JSON.stringify
- 國中英語寫作範文:My Happy Times During Winter Vacation
- 英語閲讀:VIT declines to acquire Ang Mo Kio property
- Javascript中設立對象的ReadOnly屬性
- JavaScript在Android的WebView中parseInt函數轉換不正確