在业务代码中,经常需要对象的传递,这个时候我们需要个格外的注意!
到底是需要深拷贝的对象,还是需要浅拷贝的对象,否则在这里可能就会留下bug
的隐患!
const a = {x: 1, y: {z: 2}}
// 浅拷贝
const b = a
// 第一级属性深拷贝,以后级别属性浅拷贝
const c = Object.assign({}, a)
const d = {...a}
// 深拷贝
const e = JSON.parse(JSON.stringify(a))
a.x = 5
a.y.z = 6
console.log(a) // {x: 5, y: {z: 6}}
console.log(b) // {x: 5, y: {z: 6}}
console.log(c) // {x: 1, y: {z: 6}}
console.log(d) // {x: 1, y: {z: 6}}
console.log(e) // {x: 1, y: {z: 2}}