Object.assign,一层深拷贝

当进行一层拷贝时,可以达到深拷贝的目的

var obj1 = {
  name: '张三',
  age: 23
}
var obj2 = Object.assign({}, obj1, {
  sex: '男'
})
console.log('obj1', obj1)
console.log('obj2', obj2)

当涉及到二层深拷贝时,无法达到想要的效果

var obj3 = {
  token: 'sadfsdfas',
  data: {
    name: '张三',
    age: 23
  }
}
var obj4 = Object.assign({}, obj3)
obj4.data.sex = '男'
console.log('obj3', obj3)
console.log('obj4', obj4)

也就是说,Object.assign只进行了单层深拷贝,并没有通过递归进行更进一步的深拷贝

随机浏览