当前位置: 首页 > news >正文

Object.assign方法不能实现深复制

Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target),类似这样:

const target = { a: 1 };

const source1 = { b: 2 };
const source2 = { c: 3 };

Object.assign(target, source1, source2);
target // {a:1, b:2, c:3}

那是不是Object.assign({},obj)就可以实现深拷贝了?打开console试试

图片描述

可以看到,copy中的成员跟a一样,但是copy!==a 说明拷贝成功!但是,如果对象中再包含对象,结果会怎样

图片描述

我们从打印的内容可以看出,a中的成员a和copy中的成员a是完全相等的,意味着在栈中的地址指向是相同的,所以a中的成员a并没有实现深拷贝,这个时候你更改a.a,copy.a也会跟着变化。

图片描述

结论:【Object.assign方法无法实现深复制】它只是比浅拷贝深了一层而已。

欢迎搜索微信公众号:一线码农
或扫码关注:
图片描述

相关文章:

  • 手拉手教你实现一门编程语言 Enkel, 系列 13
  • css过渡,css动画,页面布局分析,表单元素
  • JSONModel使用
  • 9月10日科技联播:马云将回归教育事业,张勇接任阿里巴巴董事局主席
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • Docker删除镜像
  • mysql 查询当天、本周,本月,上一个月的数据
  • java8之后的时间api
  • 站内全文搜索
  • 登录功能测试点
  • vue项目ide(vue项目环境搭建)
  • 逆地址解析协议RARP
  • linux之history命令
  • 阿里、美团、网易、华为等十余厂秋招Java面经大合集
  • flexible.js 兼容bug修复
  • “大数据应用场景”之隔壁老王(连载四)
  • Apache Zeppelin在Apache Trafodion上的可视化
  • Computed property XXX was assigned to but it has no setter
  • ES6 ...操作符
  • EventListener原理
  • fetch 从初识到应用
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • java正则表式的使用
  • vue脚手架vue-cli
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 编写符合Python风格的对象
  • 后端_MYSQL
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 悄悄地说一个bug
  • 容器服务kubernetes弹性伸缩高级用法
  • 如何设计一个微型分布式架构?
  • 入手阿里云新服务器的部署NODE
  • 学习Vue.js的五个小例子
  • 学习笔记TF060:图像语音结合,看图说话
  • 最简单的无缝轮播
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #define与typedef区别
  • #HarmonyOS:软件安装window和mac预览Hello World
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (13)Hive调优——动态分区导致的小文件问题
  • (javascript)再说document.body.scrollTop的使用问题
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • ****Linux下Mysql的安装和配置
  • .NET delegate 委托 、 Event 事件
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET 简介:跨平台、开源、高性能的开发平台
  • @EnableWebMvc介绍和使用详细demo
  • @FeignClient注解,fallback和fallbackFactory
  • @NestedConfigurationProperty 注解用法
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解