1、相对于对象的第一层来说,理解为深拷贝,再往更深就理解为浅拷贝
let obj1 = {
a: 10,
b: {
c: 20
}
}
let obj2 = {...obj1}
obj1.a = 100
obj1.b.c = 200
console.log(obj1) // {a: 100, b: {c: 200}}
console.log(obj2) // {a: 10, b: {c: 200}}
2、若要达到每层都进行深拷贝,可以如下
let obj1 = {
a: 10,
b: {
c: 20
}
}
let obj2 = {
...obj1,
b: {...obj1.b}
}
obj1.a = 100
obj1.b.c = 200
console.log(obj1) // {a: 100, b: {c: 200}}
console.log(obj2) // {a: 10, b: {c: 20}}
3、要想进行深拷贝也可以通过JSON.parse(JSON.stringify(xxx))
let obj1 = {
a: 10,
b: {
c: 20
}
}
let obj2 = JSON.parse(JSON.stringify(obj1))
obj1.a = 100
obj1.b.c = 200
console.log(obj1) // {a: 100, b: {c: 200}}
console.log(obj2) // {a: 10, b: {c: 20}}
————————————————
“生生不息,似水流年,学路漫漫 ”