Object.assign怎么合并对象
时间: 2025-06-15 19:42:18 浏览: 21
### 使用 JavaScript 中的 Object.assign 方法合并多个对象
`Object.assign` 是 JavaScript 提供的一个方法,用于将一个或多个源对象的属性复制到目标对象中[^1]。如果存在同名属性,则后面的源对象会覆盖前面的源对象属性值[^5]。
以下是具体的使用方式和代码示例:
#### 示例 1:基本用法
可以将多个对象合并为一个新的对象,同时保持原始对象不变。
```javascript
let object1 = { a: 1, b: 2 };
let object2 = { b: 3, c: 4 };
let mergedObject = Object.assign({}, object1, object2);
console.log(mergedObject); // 输出: { a: 1, b: 3, c: 4 }
```
在这个例子中,`object1` 和 `object2` 的属性被合并到一个新的空对象 `{}` 中[^3]。
#### 示例 2:覆盖规则
当多个源对象中有相同的属性时,后面的对象会覆盖前面的对象属性。
```javascript
let obj1 = { name: "Tom", age: 23 };
let obj2 = { name: "Jerry", age: 24 };
let result = Object.assign({}, obj1, obj2);
console.log(result); // 输出: { name: "Jerry", age: 24 }
```
这里,`obj2` 的 `name` 和 `age` 属性覆盖了 `obj1` 的对应属性[^4]。
#### 示例 3:合并多个对象
可以同时合并多个对象,并生成一个新的对象。
```javascript
let o1 = { a: 1 };
let o2 = { b: 2 };
let o3 = { c: 3 };
let combined = Object.assign({}, o1, o2, o3);
console.log(combined); // 输出: { a: 1, b: 2, c: 3 }
```
此代码展示了如何通过 `Object.assign` 将三个对象合并为一个新对象[^1]。
#### 注意事项
- 目标对象(第一个参数)会被直接修改,因此通常传入一个空对象 `{}` 作为目标对象以避免影响原始对象。
- 只有目标对象和源对象中的 **可枚举属性** 会被复制。
- 如果源对象中有 `undefined` 或 `null`,这些值不会被复制[^5]。
### 总结
`Object.assign` 是一种强大的工具,用于合并对象、克隆对象以及为对象添加属性或方法。在实际开发中,可以通过它轻松实现对象的合并与扩展功能[^2]。
阅读全文
相关推荐


















