【ES6】 JavaScript 中的Object.assign

Object.assign() 是 JavaScript 中的一个方法,它用于复制源对象的所有可枚举属性到目标对象。该方法会返回目标对象。

这是其基本用法:

javascript 复制代码
let target = Object.assign({}, source);

在这个例子中,source 对象的所有可枚举属性都被复制到了 target 对象。

需要注意的是,Object.assign() 是浅复制(shallow copy),意味着如果源对象中的值是一个对象引用,它只是复制了这个引用,而没有复制引用的对象。

例如:

javascript 复制代码
let obj1 = { a: 1 };
let obj2 = { b: 2 };
let obj3 = Object.assign({}, obj1, obj2);
console.log(obj3); // { a: 1, b: 2 }
console.log(obj3 === obj1); // false
console.log(obj3.a === obj1.a); // true

在这个例子中,尽管 obj3 是从 obj1 和 obj2 复制的,但是 obj3.a 和 obj1.a 是同一个引用,指向同一个对象。因此,如果你需要深度复制,可能需要使用其他方法,例如递归复制或使用库如 Lodash 的 _.cloneDeep() 函数。

相关推荐
猫头_23 分钟前
uni-app 转微信小程序 · 避坑与实战全记录
前端·微信小程序·uni-app
天生我材必有用_吴用26 分钟前
网页接入弹窗客服功能的完整实现(Vue3 + WebSocket预备方案)
前端
海拥31 分钟前
8 Ball Pool:在浏览器里打一局酣畅淋漓的桌球!
前端
Cache技术分享39 分钟前
148. Java Lambda 表达式 - 捕获局部变量
前端·后端
明长歌43 分钟前
【javascript】Reflect学习笔记
javascript·笔记·学习
YGY Webgis糕手之路43 分钟前
Cesium 快速入门(二)底图更换
前端·经验分享·笔记·vue
神仙别闹1 小时前
基于JSP+MySQL 实现(Web)毕业设计题目收集系统
java·前端·mysql
前端李二牛1 小时前
Web字体使用最佳实践
前端·http
YGY_Webgis糕手之路1 小时前
Cesium 快速入门(六)实体类型介绍
前端·gis·cesium
Jacob02341 小时前
UI 代码不写也行?我用 MCP Server 和 ShadCN 自动生成前端界面
前端·llm·ai编程