js 操作缓存变量 【原创辣鸡代码】

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