浅拷贝和深拷贝
浅拷贝
function copy(obj) {
let newobj = {}
for (let i in obj) {
newobj[i] = obj[i]
}
return newobj
}
let obj1 = {
name: '小米',
age: 2,
}
let obj2 = copy(obj1)
obj2.name = '小红'
console.log(obj1)
console.log(obj2)
深拷贝
function copy(obj) {
let newobj = {}
for (let i in obj) {
if (obj[i] instanceof Object) {
newobj[i] = copy(obj[i])
} else {
newobj[i] = obj[i]
}
}
return newobj
}
//通过JSON的stingify和parse方法实现深度拷贝
function copy(obj) {
let newobj = JSON.stringify(obj)
return JSON.parse(newobj)
}
let obj1 = {
name: '小米',
age: 2,
girlFriend: {
name: '小红'
}
}
let obj2 = copy(obj1)
obj2.girlFriend.name = '小花'
console.log(obj1)
console.log(obj2)

浙公网安备 33010602011771号