const _shallowClone = target => {
  if(typeof target == "object" &&  target !== null){                       // Array,null 的 type 类型也是 object
        if(/^(RegExp|Date|Set|Map)$/.test(target.constructor.name)){       // 使用构造函数名,也是实例化对象名进行第一步筛选
          return target;                                                     
        }
        let collect = target instanceof Array ? [] : {};                   // 剩下的是数组和对象
        for( prop in target){
          if(target.hasOwnProperty(prop))
            collect[prop] = target[prop]
        }
        return collect;
  }else{
    	return target                  									   // 剩下的是number,bollean,string,undefined等数据类型
  }
}