1、JSON.parse(JSON.stringify(obj))
先将目标对象转为字符串,再转为对象,可实现对象的深拷贝
var obj1 = {name:'明明',scores:[88,76,91]}
var obj2 = JSON.parse(JSON.stringify(obj1))
console.log(obj1 === obj2) //false
适用于绝大部分的对象,支持的数据类型有:String / Number / Boolean / Object / Array / null
不支持的数据类型:undefined / Symbol / 循环引用 / Date / Regexp
2、Object.assign()
这种情况下,是属于浅拷贝,对象中的数组传递过去的是一个地址,因此,虽然两个对象不相等,但是就此例来讲,他们对应的score是一样的,并没有得到一个完全的深层次拷贝
var obj1 = {name:'明明',scores:[88,76,91]}
var obj3 = Object.assign({},obj1)
console.log(obj1 === obj3) //false