/*** * Cache缓存管理 * @param type[string] eq-赋值/add-字符串增加/push-数组增加/extend-对象合并] */ function c( name, val ,type){ //默认操作 var type = type || "eq"; //创造缓存空间 if(typeof CACHE != "object"){CACHE={};} //指针定向到缓存 var result = CACHE; //点语法,最终找到相关位置的父级 if(name.match(/\./g)){ var arr= name.split("."); arr.map(function(ele,ind){ if(ind == arr.length -1 ){name = ele;return;} result = result[ele]; }) //找不到数据未定义 if(!result){return false;} } //理解请求的操作 var val_type = typeof val; var name_type = typeof name; //--理解为读取指定缓存 的逻辑 if(val_type == "undefined"){return result[name];} //--理解为读取整个缓存 的逻辑 if(name_type == "undefined"){return result;} //--下面是 对缓存进行操作的逻辑 //-- -- 定义操作函数 //-- -- --赋值 function eq(){ result[name] = val; return result[name]; } //-- -- --字符串增加 function add(){ result[name] = (result[name])? result[name] + val : val; return result[name]; } //-- -- --数组增加 function push(){ result[name].push( val ); return result[name]; } //-- -- --对象合并 function extend(){ if(typeof result[name] == "obj"){ $.extend(result[name], val); }else{ eq(); } return result[name]; } //-- -- 执行相关操作 try{ var run = `result= ${type}();`; eval(run); }catch(e){ console.log(e); console.log(run); //操作失败返回错误 result = false; } return result; }