Object.assign() 合并对象

最后更新:2026-09-09

Object.assign() 合并对象

Object.assign 将一个或多个源对象的可枚举属性复制到目标对象,返回目标对象。浅拷贝合并——嵌套对象仍然共享引用。

分类对象
ES 版本ES5

📝 语法

const 合并后 = Object.assign(目标, 源1, 源2);

⚙️ 参数

target目标对象——属性被复制到这个对象上并返回。
sourceN一个或多个源对象。

返回值:合并后的目标对象。

是否修改原值:是(原地修改)

▶ 示例

编辑下方代码,点击运行,在输出面板查看结果:

运行结果:

{ theme: 'dark', lang: 'zh', size: 'md' }
💡 提示 Object.assign({}, a, b) 第一个参数传空对象可以避免修改原始对象——但更推荐展开符 { ...a, ...b }。
⚠️ 警告 浅拷贝——嵌套对象仍然共享引用,修改嵌套属性会同时影响源和目标。

🌐 浏览器支持

浏览器 ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
Object.assign() v1 v12 v1.5 v3 v10.5
所有现代浏览器均支持
更多实战案例即将上线,敬请期待。

📚 相关教程

❓ 常见问题

QObject.assign 是深拷贝吗?
A不是——浅拷贝。嵌套对象共享引用。深拷贝用 structuredClone。
QObject.assign 和展开符的区别?
A功能相同。展开符 { ...a, ...b } 更简洁且不修改原始对象。
Q如何合并嵌套对象?
AObject.assign 是浅合并——需要深合并手写递归或用 lodash.merge。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏