Object.assign() 介绍
时间: 2023-10-13 14:19:47 浏览: 42
Object.assign() 是一个用于将一个或多个源对象的属性复制到目标对象的方法。它接受任意数量的参数,其中第一个参数是目标对象,后面的参数是源对象。它将源对象的属性复制到目标对象中,如果有多个源对象,后面的源对象属性将覆盖前面的属性。
例如,以下代码将两个对象的属性合并到一个新的对象中:
```javascript
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const newObj = Object.assign({}, obj1, obj2);
console.log(newObj); // { a: 1, b: 3, c: 4 }
```
在这个例子中,`Object.assign()` 将 `obj1` 和 `obj2` 的属性合并到一个新的空对象中,并返回这个新对象。
需要注意的是,`Object.assign()` 只复制对象自身的可枚举属性,不会复制继承的属性和方法。并且如果源对象的属性值是一个对象,则会复制这个对象的引用而不是对象本身。如果目标对象中已经有某个属性,则会覆盖这个属性的值。
```javascript
const obj1 = { a: { b: 1 } };
const obj2 = { a: { c: 2 } };
const newObj = Object.assign({}, obj1, obj2);
console.log(newObj); // { a: { c: 2 } }
```
在这个例子中,`obj1` 和 `obj2` 都有一个属性名为 `a` 的对象,但它们的属性值是不同的。由于 `Object.assign()` 复制的是对象引用,所以结果中的 `a` 属性的值是 `{ c: 2 }`,而不是合并后的 `{ b: 1, c: 2 }`。