obj.b.e = obj.b.c;
let newObj2 = Object.assign({ obj);
console.log(newObj2);
结果:
Object.assign()适用于浅拷贝circular对象 , 但不适用于深拷贝 。
使用展开运算符(…)
ES6已经实现了用于数组解构赋值的rest元素和用于数组字面量的展开运算符 。 数组的展开运算符实现如下:
const array = [
\"a\"
\"c\"
\"d\" {
four: 4
;
const newArray = [...array
;
console.log(newArray);
// Result
// [\"a\" \"c\" \"d\" { four: 4
对象初始值设定项中的扩展属性将自己的可枚举属性从源对象复制到目标对象 。 如果ECMAScript的Stage 3提案接受的话 , 那么复制对象变得非常容易:
let obj = {
one: 1
two: 2
let newObj = { ...obj ;
// { one: 1 two: 2
总结
希望通过本文能帮助大家理解并避免将来可能遇到的复制对象的陷阱 。 尤其是对JavaScript刚学习的新手而言 。
- 随着数字化时代的到来|文件夹加密工具——金舟文件夹加密大师
- 本文转自:央视网央视网消息:首届数字贸易博览会正在杭州进行|数字化场景与服务为文化贸易赋能
- 为什么说当下转型云原生架构师刻不容缓?| 极客时间
- 数字贸易|数字化新技术亮相首届全球数字贸易博览会
- 本文转自:工人日报这是12月12日在杭州国际博览中心拍摄的首届全球数字贸易博览会现场。|数字化新技术亮相全球数字贸易博览会
- 电子商务|京东云事业群副总裁杨文胜:数智供应链是消费互联网和产业互联网的深度融合|WISE 2022中国数字化创新高峰论坛
- 美光|中兴通讯5G专网核心网2.0全面升级,激发行业数字化活力
- 浏览器|广州蓝景分享—HTML+CSS功能,让页面加载速度提高数倍
- 华为终端|中小企业数字化转型慢且难?华为终端商用同路者计划或成强劲助力
- 卤味格局“巨变”,“徒弟”绝味成老大,周黑鸭转型靠加盟再翻身
