Object.assign({}, obj, obj2) 这算是深拷贝吗

news/2025/2/19 8:04:46/

Object.assign({}, obj, obj2) 是使用 Object.assign() 方法来合并对象的一种常见方式,但它并不属于深拷贝。

Object.assign() 方法用于将一个或多个源对象的属性复制到目标对象,并返回目标对象。当目标对象和源对象具有相同的属性时,后面的源对象将覆盖前面的源对象的属性。

虽然 Object.assign() 可以复制对象的属性,但它只能进行浅拷贝(shallow copy)。这意味着如果对象中的属性是对象或数组,那么拷贝的只是引用,而不是创建新的对象。因此,对于嵌套的对象或数组,更改拷贝后的对象会影响原始对象。

示例:

const obj = { a: 1, b: { c: 2 } };
const clonedObj = Object.assign({}, obj);
clonedObj.b.c = 3;console.log(obj);         // { a: 1, b: { c: 3 } }
console.log(clonedObj);   // { a: 1, b: { c: 3 } }

在上面的示例中,对拷贝后的对象 clonedObj 进行属性修改会影响原始对象 obj 中相同属性的值。

因此,如果你需要进行深拷贝而不仅仅是浅拷贝,你需要使用其他的方法,如使用递归或第三方库来实现深度复制。

结语:感谢您的阅读!希望本文带给您有价值的信息。如果对您有帮助,请「点赞」支持,并「关注」我的主页获取更多后续相关文章。同时,也欢迎「收藏」本文,方便以后查阅。


http://www.ppmy.cn/news/1281018.html

相关文章

一起玩儿物联网人工智能小车(ESP32)——14. 用ESP32的GPIO控制智能小车运动起来(二)

摘要:本文主要讲解如何使用Mixly实现对单一车轮的运动控制。 下面就该用程序控制我们的小车轮子转起来了。打开Mixly软件,然后单击顶部“文件”菜单中的“新建”功能,我们来开启一个新程序的开发工作。 我们的工作同样是先从最简单的开始&am…

Linux Shell 005-条件判断

Linux Shell 005-条件判断 本节关键字:Linux、Bash Shell、条件判断 相关指令:test、echo、[ ]、[[ ]] 条件判断语法结构 格式1:test 条件表达式 格式2:[ 条件表达式 ] 格式3:[[ 条件表达式 ]] 说明: 格…

基于ERC20代币协议实现的去中心化应用平台

文章目录 内容简介设计逻辑ERC20TokenLoanPlatform 合约事件结构体状态变量函数 Remix 运行实现部署相关智能合约存款和取款贷款和还款 源码地址 内容简介 使用 solidity 实现的基于 ERC20 代币协议的借贷款去中心化应用平台(极简版)。实现存款、取款、贷款、还款以及利息计算的…

智能优化算法应用:基于材料生成算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于材料生成算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于材料生成算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.材料生成算法4.实验参数设定5.算法结果6.…

中医院企业网站搭建的作用是什么

互联网时代,人们传统获取信息及服务的渠道发生了改变,如查看某个门店/医院的信息除了口口相传、实际服务感受外,还有线上平台获取信息,官网可以说是每个企业必备的线上门户,中医院也不例外,无论电脑端还是手…

音频修复增强软件iZotope RX 10 mac特点介绍

iZotope RX 10 mac是一款音频修复和增强软件。 iZotope RX 10 mac软件特点 声音修复:iZotope RX 10可以去除不良噪音、杂音、吱吱声等,使音频变得更加清晰干净。 音频增强:iZotope RX 10支持对音频进行音量调节、均衡器、压缩器、限制器等处…

OpenStack搭建和部署

Centos官网qcow2镜像修改root账号密码,开启ssh等 wget http://172.16.20.10/vmtemplate/KVM/wangrui/Debian/debian-10.2.0-openstack-amd64.qcow2 一、查看镜像文件信息 [debian-10.2-cloud] nameDebian 10.2.0 (Buster) Cloud osinfodebian10 archx86_64 fi…

SpringBoot运维(五)-- 运维日志

目录 引言: 1. 使用日志工具记录日志 1.1 添加日志记录操作 1.2 设置日志输出级别