object.assign

导读 `Object.assign()` 是 JavaScript 中用于将一个或多个源对象的属性复制到目标对象的函数。这个函数接受一个目标对象和一个或多个源对象...

`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()` 方法)。

版权声明:本文由用户上传,如有侵权请联系删除!