详解Object.assign
时间: 2023-11-05 17:00:58 浏览: 119
`Object.assign()` 是一个 JavaScript 内置函数,它用于将一个或多个源对象的属性复制到目标对象中。它的语法如下:
```javascript
Object.assign(target, ...sources)
```
其中,`target` 是目标对象,`sources` 是一个或多个源对象。
`Object.assign()` 方法会按照参数的顺序依次将源对象的可枚举属性复制到目标对象中。如果目标对象中已经存在相同的属性名,则源对象中的属性值会覆盖目标对象中的属性值。
这个方法会返回目标对象。需要注意的是,`Object.assign()` 是浅拷贝,即只复制对象的引用,而不会复制对象的所有属性的值。
下面是一个使用 `Object.assign()` 的示例:
```javascript
const target = { a: 1, b: 2 };
const source = { b: 3, c: 4 };
const result = Object.assign(target, source);
console.log(result); // { a: 1, b: 3, c: 4 }
console.log(target); // { a: 1, b: 3, c: 4 }
```
在上面的示例中,`target` 对象中的属性 `b` 的值被源对象 `source` 中的属性 `b` 的值覆盖了,最后返回的结果是目标对象 `target`。
请注意,`Object.assign()` 方法是浅拷贝,这意味着如果源对象的属性值是对象或数组,那么目标对象中的对应属性值仍然是原来的引用。
阅读全文