使用扩展运算符可简洁合并对象,如{...obj1, ...obj2},后者的同名属性会覆盖前者,支持多个对象按序合并,但仅浅合并,嵌套对象会被整体替换,深合并需借助其他方法。

在 JavaScript 中,使用 ES6 语法合并对象最常用的方法是通过扩展运算符(...)。这种方法简洁、易读,适用于大多数对象合并场景。
扩展运算符可以将一个对象的所有可枚举属性复制到新对象中。多个对象可以按顺序合并,后面的对象属性会覆盖前面的同名属性。
例如:
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const merged = { ...obj1, ...obj2 };
console.log(merged); // { a: 1, b: 3, c: 4 }
在这个例子中,b 属性在 obj2 中被重新定义,因此最终结果中的 b 值为 3。
你可以同时合并两个以上的对象,顺序决定覆盖规则。
示例:
const obj1 = { x: 1 };
const obj2 = { y: 2 };
const obj3 = { z: 3 };
const result = { ...obj1, ...obj2, ...obj3 };
console.log(result); // { x: 1, y: 2, z: 3 }
扩展运算符只进行浅合并。如果对象嵌套,内层对象会被整体替换,而不是递归合并。
比如:
const obj1 = { user: { name: 'Alice' } };
const obj2 = { user: { age: 25 } };
const merged = { ...obj1, ...obj2 };
console.log(merged); // { user: { age: 25 } }
原始的 name 字段丢失了,因为整个 user 对象被替换成来自 obj2 的对象。
如果需要深合并,需借助第三方库如 Lodash 的 merge 方法,或手动实现递归逻辑。
基本上就这些。扩展运算符是 ES6 中合并对象最推荐的方式,简单直接,适合日常开发使用。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号