引用数据类型 栈内存 堆内存

let m = { a: 10, b: 20 };
let n = m;
n.a = 15;
console.log(m.a) // 15

原因:基本数据类型存储在栈内存中,引用数据类型存储在堆内存中 ,引用数据类型存储在堆内存中会在栈内存中创建一个指针,栈内存中的这个指针指向堆内存中的地址,所以let n=m;相当于n指针也指向和m相同的地址  修改n既修改m(既所说的浅拷贝)

 

想要避免这种情况可以如下操作(深拷贝)

let m = { a: 10, b: 20 };
let _m= JSON.parse(JSON.stringify(m)); //or _m={...m}
let n = _m;
n.a = 15;
console.log(m.a) // 10

 JSON.parse(JSON.stringify)这个方法可以简单粗暴的实现深拷贝,但是还存在问题,拷贝的对象中如果有函数,undefined,symbol,当使用过JSON.stringify()进行处理之后,都会消失。

参考文章:js中的浅拷贝与深拷贝_js深浅拷贝-CSDN博客 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/9796.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud生态体系介绍

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、智能路由、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。 SpringC…

linux上安装Jmeter环境

以前都是在Windows本机上使用界面版Jmeter,今天试一下安装到linux上在linux中使用,Jmeter的使用需要先安装jdk环境然后再配置jmeter。 1.配置环境 linux环境:Centos 8.2 64位 JDK版本:jdk-8u221-linux-x64.tar.gz (…

数据中心法

数据中心法是实现词法分析器的结构化方法。通过设计主表和子表分开存储状态转移信息,实现词法分析器的控制逻辑和数据结构分离。 主要解决了状态爆炸、难以维护和复杂性的问题。 状态爆炸是指当状态和转移较多时,单一使用一个表来存储所有的信息的话会导…

通俗的理解网关的概念的用途(二):不同区域的网络之间的访问方式

两个不同区域的网络互相访问,一般可以通过一种叫做“三层”的网络设备来进行通信: 一、网关方式: 本机A(192.168.1.1)访问目标 T10(10.10.10.10)时,由于根据本地网络的设置,操作系统通过计算得…

UE4BeginPlay执行流程

文章目录 UE4 BeginPlay执行流程源代码UGameInstance::StartPlayInEditorGameInstance:UWorld::BeginPlayAGameModeBase::StartPlayAGameStateBase::HandleBeginPlayAWorldSettings::NotifyBeginPlayAActor::DispatchBeginPlay UE4 BeginPlay执行流程 Created with Raphal 2.3.…

算法第63天 单调栈3

84 柱状图中最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 def largestRectangleArea(heights):res0for i in range(len(heights)):left…

【Linux】如何查看Linux命令的使用方法

man cd | col -b > cdhelp.txt #查询帮助文档 man 命令用于查看 Linux 系统的在线帮助文档(man page)。man 是 “manual” 的缩写,通过它,你可以访问关于各种命令、函数、配置文件等的详细文档。 cd 是一个常用的命令&#xf…

YOLO数据集制作(一)|Labelme标注的矩形框json文件转txt

以下教程用于将使用Labelme软件标注生成的json格式文件转成YOLO使用的txt格式,适用场景:矩形框 使用方法:将json文件夹路径填到json_dir后, 将保存转化后txt的路径填入txt_dir后,运行即可转化。 运行完成后会生成label…

io流、字节流字符流区别

想象你正在做一道菜,需要准备材料和烹饪步骤。IO流就像是你在做菜时使用的工具,而字节流和字符流则是不同类型的工具,适合不同的操作。 首先,字节流就像是你使用的普通厨具,比如刀、砧板等。它们可以处理任何类型的食…

Linux-解压缩文件命令(gzip、zip、unzip、tar、jar)

目录 1、压缩解压命令 1.1 gzip、gzcat、gunzip 1.2 bzip2、bzcat、bunzip2 1.3 zip和unzip 2、tar命令 3、jar命令 1、压缩解压命令 1.1 gzip、gzcat、gunzip gzip 命令 压缩文件后缀.gz gzcat 用来显示压缩的文本文件内容 gunzip 用来解压文件 把/home目录下的t…

使用向量数据库 Zilliz Cloud 时常用到的术语和概念

AUTOINDEX 为满足用户不同需求,Zilliz Cloud 提供 2 种类型的集群 CU:性能型和容量型。但是,为不同类型 CU 集群中的 Collection 创建索引时,通常需要根据所选择的 CU 类型调整索引参数。为了方便创建索引,免去调节参数的麻烦,Zilliz Cloud 使用 AUTOINDEX 的索引类型。…

OpenAI 正在开发一种可以防止版权诉讼的工具

OpenAI 正在开发一种名为 Media Manager 的工具,该工具将使内容创建者和所有者能够确定他们是否愿意将自己的内容用于 ML 研究和 AI 模型训练。 Media Manager 将做什么? 明年推出的 Media Manager 将使内容创作者和所有者能够更好地控制他们的工作是否…

Oracle体系结构初探:闪回技术

在Oracle体系结构初探这个专栏中,已经写过了REDO、UNDO等内容。觉得可以开始写下有关备份恢复的内容。闪回技术 — Oracle数据库备份恢复机制的一种。它可以在一定条件下,高效快速的恢复因为逻辑错误(误删误更新等)导致的数据丢失…

岩点×数说故事×小红书 | 发布《中国攀岩行业分析报告》

从下班健身到下班攀岩,从“鸡娃”到岩馆“溜娃”,被奥运“正名”的攀岩运动,在国内熬过了萌芽阶段,悄然开出了花。2023年,各类重磅攀岩赛事重启、线下岩馆疯狂扩张,小众攀岩正式进入大众视野,风…

249 基于matlab的MED、OMEDA、MOMEDA、MCKD信号处理方法

基于matlab的MED、OMEDA、MOMEDA、MCKD信号处理方法。最小熵反褶积(MED),最优最小熵反卷积调整卷积 (OMEDA),多点最优最小熵解卷积调整(Multipoint Optimal Minimum Entropy Deconvolution Adjusted,MOMEDA),最大相关峭…

Vue2 组件通信方式

props/emit props 作用&#xff1a;父组件通过 props 向子组件传递数据parent.vue <template><div><Son :msg"msg" :pfn"pFn"></Son></div> </template><script> import Son from ./son export default {name: …

winform图书管理系统

winform图书管理系统说明文档 运行前附加数据库.mdf&#xff08;或sql生成数据库&#xff09; 主要技术&#xff1a; 图书管理员 读者管理 图书管理 添加 修改 删除 查看 入库 书册列表 书册管理用户管理退出 借书 还书 系统管理员 修改图书管理权限 项目获取&#xff1a;…

LeetCode 209 长度最小的子数组(滑动窗口and暴力)

、 法一&#xff1a;滑动窗口 //使用滑动窗口来解决问题 //滑动窗口的核心点有&#xff1a; /*1.窗口内是什么&#xff1f;2.如何移动窗口的起始位置&#xff1f;3.如何移动窗口的结束位置&#xff1f;4.两个指针&#xff0c;怎么判断哪个指针是终止指针&#xff0c;哪个指针…

代码随想录算法训练营第六十天| LeetCode647. 回文子串 、516.最长回文子序列

一、LeetCode647. 回文子串 题目链接/文章讲解/视频讲解&#xff1a;https://programmercarl.com/0647.%E5%9B%9E%E6%96%87%E5%AD%90%E4%B8%B2.html 状态&#xff1a;已解决 1.思路 这道题我只想出来了暴力解法&#xff0c;动规解法并没有想出来。根据视频讲解才把它想出来。…

针对macOS上的maven安装配置

这篇博客将向读者介绍如何安装和配置Maven。Maven是一个强大的项目管理工具&#xff0c;广泛用于Java项目的构建、依赖管理和项目报告生成。它可以极大地简化项目的构建过程&#xff0c;并帮助开发人员管理项目的各种依赖项。 什么是Maven&#xff1f; Maven是一个基于项目对…