1.{...obj}  ES6扩展运算符,解析解构法

let aa = {
name:'七娃',
sex:'男'
}
let bb = {...aa}

2.Object.assign(new,old1,old2)  ES6 合并为对象

let cc = Object.assign({},aa)

3.手写函数

function copy(obj){
var newO = {};
for(let keys in obj){
newO[keys] = obj[keys]
}
return newO;
}

4.JSON格式转换法 —— 深拷贝

function deepCopy(obj){
  return JSON.parse(JSON.stringify(obj));
}

5.手写深拷贝

function deepCopy(obj){
var newObj = Array.isArray(obj)?[]:{}
for(let keys in obj){
if(obj.hasOwnProperty(keys)){
newObj[keys] = typeof obj[keys]==='object' ? deepCopy(obj[keys]) : obj[keys]
} 
}
return newObj; 
}