object.assign()是深拷贝还是浅拷贝

Object.assign() 方法执行的是浅拷贝。这意味着它只会复制对象的引用,而不是对象本身。如果源对象的属性值是基本类型(如字符串、数字),则通过 Object.assign() 创建的新对象会拥有这些属性的深拷贝。然而,如果属性值是对象或其他引用类型,则新对象中的对应属性仍然指向同一个对象引用,因此对这些对象进行的修改会影响原始对象。

简而言之:

  • 对于基本类型属性,Object.assign() 提供深拷贝。

  • 对于对象或引用类型属性,Object.assign() 提供浅拷贝。

如果有嵌套对象,Object.assign() 只会递归复制第一级属性,对于更深层次的嵌套属性仍然是浅拷贝

Top