/***
* 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;
}