浅拷贝
1.
let obj2={...boj};
2.
let obj2={};for(let key in obj){ if(!obj.hasOwnProperty(key)) break; obj2[key]=obj[key];}
深拷贝
1.
let obj2=JSON.parse(JSON.stringify(obj))
弊端:symbol 函数 undefined 都会被忽略掉
2.
function deepClone(obj){ //=>过滤特殊情况 if(obj===null) return null; if(typeof obj!=="object") return obj; if(obj instanceof RegExp(obj)){ return new RegExp(obj); } //=>不直接创建空对象的目的:克隆的结果和之前保持相同的所属类 let newObj=new obj.constructor; for(let key in obj){ if(obj.hasOwnProperty(key)){ newObj[key]=deepClone(obj[key]) } } return newObj}