1. JSON stringify() 无法转换 对象中的function 正则 等等... 除了这些特殊的情况 这种深度克隆方式 很好用
JSON.stringify()
JSON.parse()
2. 第二种 就是 Object.assign() js原生提供的 方式 会继承属性, 但是 无法深度克隆
例:浅克隆
let newObj = Object.assign({}, this.data)
例:无法深度克隆
let obj1 = { a: 1, b: 2, c: { d: 1 } }
let newObj1 = Object.assign({}, obj1)
obj1 === newObj1 // false
obj1.c === newObj1.c // true
let obj2 = [{age: 1}, {age: 2}]
let newObj2 = Object.assign({}, obj2)
obj2 === newObj2 // false
obj2[0] === newObj2[0] // true