浅拷贝:对象的复制只是复制对象的引用,可以改变原始数据的值
const obj = {
name: '王成',
age: 18,
like: ['篮球', 'rap', '小姐姐']
}
const obj2 = {
...obj
}
obj2.name = '崔傑瑜'
obj2.like[0] = '足球'
console.log(obj, obj2)
const obj = {
name: '王成',
age: 18,
like: ['篮球', 'rap', '小姐姐']
}
const obj2 = {}
for(let key in obj){
obj2[key] = obj[key]
}
obj2.name = '崔傑瑜'
obj2.like[0] = '足球'
console.log(obj, obj2)
深拷贝:彻底复制一个对象,而不是简单的拷贝对象的引用,拷贝后不能修改原始数据的值
const obj = {
name: '王成',
age: 18,
like: ['篮球', 'rap', '小姐姐']
}
// const obj2 = Object.assign({}, obj)
// obj2.like[0] = '足球'
// console.log(obj, obj2)
// JSON.stringify()
const obj2 = JSON.parse(JSON.stringify(obj))
obj2.like[0] = '足球'
console.log(obj, obj2)