SOURCE

(function(){
   let item = {
       a:1,
       b:{
           t:'sdf',
           d:[2,3,4],
           t:{
               c:'cccc'
           }
       }
   };
   let base = 'dfsf';
   let my = {...item};
   console.log('before---',my)
   item.a = 4444;
   console.log('end---',my)
})()

//浅拷贝分基本数据类型--实例拷贝  应用数据类型---地址拷贝
//浅拷贝 1,单层map适用 2,单层map中基本数据类型完成拷贝,应用数据类型会受影响
function base_(){
    let base ='first';
    let base1 = base;
    let base2 =  {
       a:1,
       b:{
           t:'sdf',
           d:[2,3,4],
           t:{
               c:'cccc'
           }
       }
   };
   base3 = {...base2}; //扩展运算符
   base4 = Object.assign({},base2);//方式二
}
//深拷贝是实例拷贝  常用方式
function instance_(object){
    return JSON.parse(JSON.stringify(object))
}
//JSON 方式缺点
//如果源对象中有时间对象,反序列化后得到的是个字符串而非时间对象
//如果源对象中有RegExp、Error对象,则序列化的结果是空对象
//如果源对象中有函数、undefined,序列化时候会丢掉它们
//如果源对象里有NaN、Infinity和-Infinity,则序列化的结果会变成null
///JSON.stringify()只能序列化对象的可枚举的自有属性
//对象中存在循环引用的情况也无法正确实现深拷贝
//会忽略symbol
console 命令行工具 X clear

                    
>
console