Object 方法 详细 Object.assign
时间: 2023-10-12 14:12:31 浏览: 36
`Object.assign()` 方法用于将一个或多个源对象的属性复制到目标对象中。它返回目标对象。
语法:
```
Object.assign(target, ...sources)
```
参数:
- `target`:目标对象。
- `sources`:一个或多个源对象。
返回值:
- 返回目标对象。
注意事项:
- 如果目标对象和源对象具有相同的属性,则源对象的属性值将覆盖目标对象的属性值。
- 如果只传递一个参数,则将返回该参数。
- 如果传递的参数是 `null` 或 `undefined`,则会抛出一个错误。
- `Object.assign()` 方法只会进行浅拷贝,也就是说,如果源对象的属性值是一个对象或数组,那么目标对象也只是保存了一个引用,而不是拷贝了整个对象或数组。
示例:
```
const target = { a: 1, b: 2 };
const source1 = { b: 3, c: 4 };
const source2 = { c: 5, d: 6 };
const result = Object.assign(target, source1, source2);
console.log(target); // { a: 1, b: 3, c: 5, d: 6 }
console.log(result); // { a: 1, b: 3, c: 5, d: 6 }
const obj1 = { a: { b: 1 } };
const obj2 = Object.assign({}, obj1);
obj1.a.b = 2;
console.log(obj2.a.b); // 2,因为 obj2.a 和 obj1.a 指向同一个对象
```