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