`Object.assign()` 是 JavaScript 中用于将一个或多个源对象的属性复制到目标对象的函数。这个函数接受一个目标对象和一个或多个源对象,然后将源对象的所有可枚举属性复制到目标对象。如果多个源对象具有相同的属性,那么后面的属性将覆盖前面的属性。
这是其基本语法:
```javascript
Object.assign(target, ...sources)
```
其中:
* `target` 是目标对象,即要复制到的对象。
* `...sources` 是一个或多个源对象,即要从中复制属性的对象。
示例:
```javascript
const target = { a: 1 };
const source1 = { b: 2 };
const source2 = { c: 3 };
Object.assign(target, source1, source2);
console.log(target); // 输出:{ a: 1, b: 2, c: 3 }
```
在这个例子中,`source1` 和 `source2` 的属性都被复制到了 `target` 对象中。注意,如果多个源对象具有相同的属性,那么后面的属性会覆盖前面的属性。例如,如果 `source2` 也有一个 `a` 属性,那么它的值会覆盖 `source1` 中的 `a` 属性值。
注意:`Object.assign()` 是浅拷贝,不会复制对象的原型链。并且,如果源对象的属性值是一个指向对象的引用,那么实际上,目标对象得到的是这个引用值的副本(实际上是相同的引用),而不是这个引用指向的实际数据的副本。这意味着如果你修改源对象的引用值,目标对象也会受到影响。如果你需要深度复制对象,可以考虑使用其他方法或库(如 lodash 的 `_.cloneDeep()` 方法)。