Object.assign() Merge objects

Last updated: 2026-09-09

Object.assign() Merge objects

Object.assign copies enumerable properties from source objects to the target — a shallow merge.

CategoryObjects
ES versionES5

📝 Syntax

const merged = Object.assign(target, source1, source2);

⚙️ Parameters

targetThe target object — properties are copied here and returned.
sourceNOne or more source objects.

Returns:The merged target object.

Mutates the original:Yes (in place)

▶ Example

Edit the code, press Run, and see the result in the output panel:

Output:

{ theme: 'dark', lang: 'zh', size: 'md' }
💡 Tip Pass {} as target to avoid mutation; spread { ...a, ...b } is even better.
⚠️ Warning Shallow merge — nested objects share references.

🌐 Browser support

Browser ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
Object.assign() v1 v12 v1.5 v3 v10.5
Supported by all modern browsers
More case studies coming soon — check back later.

📚 Related Tutorials

❓ FAQ

QIs Object.assign a deep copy?
ANo — shallow. Use structuredClone for deep copies.
QObject.assign vs spread?
ASame result; spread is cleaner and non-mutating.
QHow to merge nested objects?
AShallow only — use a deep-merge library for nested objects.
Web-Tutorial.com

Web-Tutorial Tech Team

A team of developers maintaining programming tutorials. Each tutorial is written and reviewed by developers with expertise in that field. We work to keep our content accurate and reliable — if you spot an issue, please let us know.

100%

🙏 帮我们做得更好

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

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