实现摘要:通过Array和Object实现Map存储,通过localStorage实现本地缓存,通过函数代理注册传入函数(如回调函数等)。代理函数用来将传入函数添加为自身属性或成员方法以便调用,即代理函数就是一种反射方式。另外,Map存储中含有将Object转换为JSON对象和JSON字符串的方法,可以供需而用。以下是具体实现方式:
/**注册函数域*/
if(typeof noneorone == 'undefined'){
//根域
noneorone = {};
//工具域
noneorone.util = {};
//测试域
noneorone.test = {};
}
/**
* map存储
* @date 2012-02-03
* @author sunnysolong
*/
noneorone.util.map = (function(){
/*键集合*/
this.keys = new Array();
/*数据存储对象*/
this.data = new Object();
/**
* 为缓存对象添加键值对
* @param {String} key
* @param {String} value
*/
this.put = function(key,value){
if(null == this.data[key]){
//若指定的键不存在,则向键集合中追加该键
this.keys.push(key);
}
//将对应的值与键关联
this.data[key] = value;
return data;
};
/**
* 返回指定键关联的值
* @param {Object} key
* @return {Object} 与键对应的值
*/
this.get = function(key){
//检索键对应值并返回
return this.data[key];