深拷贝与浅拷贝(对象的引用)

news2024/11/24 19:39:29

可以用=赋值

1.对象的引用

代码:

 <!-- 1.对象的引用 -->
    <script>
        const info={name:"lucy",age:20}
        const obj=info;
        info.name="sam"
        console.log(obj.name)   //sam
    </script>

图解:

等于号的赋值,对象info和对象obj指向的是同一个地址,也就是共用这个地址里面的内容,如果一个对象修改了地址中的内容,那么另一个对象从这个地址获取的内容也随之修改。

2.对象的浅拷贝

代码:


    <!-- 2.对象的浅拷贝 ladash(_.clone(info) )-->
    <script>
        const info = { name: "lucy", age: 20, friend: { name: 'abc' } }
        const obj = Object.assign({}, info);

        info.name = "aww"
        console.log(obj.name)   //lucy(拷贝了新地址)

        info.friend.name = "jenns"
        console.log(obj.friend.name)  //jenns(没有拷贝新地址,还是用的同一地址的内容)
    </script>

图解:

对象info和对象obj指向的地址不同,所以对象info的内容修改不会影响到obj的内容,但是对象friend指向的还是同一块地址,所以会相互影响

3.深拷贝

代码:

<!-- 3.对象的深拷贝 ladash(_.cloneDeep(info))-->
    <script>
        const info = { name: "lucy", age: 20, friend: { name: 'abc' } }
        const obj = JSON.parse(JSON.stringify(info))
        info.friend.name = "jenns"
        console.log(obj.friend.name)  //abc(重新开辟了地址)
    </script>

图解:

对象info和对象obj的值不相关,所以修改info的值不会影响到obj的值

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

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

相关文章

ARMv7-A 那些事 - 4.处理器模式与特权等级

By: Ailson Jack Date: 2023.09.23 个人博客&#xff1a;http://www.only2fire.com/ 本文在我博客的地址是&#xff1a;http://www.only2fire.com/archives/156.html&#xff0c;排版更好&#xff0c;便于学习&#xff0c;也可以去我博客逛逛&#xff0c;兴许有你想要的内容呢。…

二、iMove-cli 本地开发模式

引言&#xff1a;iMove cli肩负着落库逻辑代码的重要责任&#xff0c;本文主要介绍本地开发模式下cli的工作。 书接上文&#xff0c;iMove主要由3个包组成&#xff1a;cli、compile-code、core&#xff0c;此外还有一个插件库plugin-store&#xff0c;这个后续文章再出&#xf…

机器学习的数据

数据 数据整体的信息 我们整个数据就可以表示成这样 上图中的数据整体叫数据集(data set)图中每一行数据称为一个样本(sample)。除最后一列&#xff0c;每一列表达样本的一个特征(feature)最后一列称为标记&#xff08;label&#xff09; 除了第一行和最后一列以外的信息就是…

el table 修改鼠标在行上改变背景颜色

el table 在制作的时候&#xff0c;需要修改当鼠标停留在指定行上的时候&#xff0c;修改背景颜色等相关样式。 这里面记录一下 1. 首先&#xff0c;在table上面添加class&#xff0c;如下图: 2. 然后再最下面下面创建style样式&#xff0c;是<style scoped> 的&#x…

滑动窗口9.23

1876.长度为3且各字符不同的子字符串 1876. 长度为三且各字符不同的子字符串 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/substrings-of-size-three-with-distinct-characters/?envTypelist&envId24zW97w8自写思路&#xff1a; 数组充当哈希表…

Spring面试题16:Spring框架中的单例bean是线程安全的吗?Spring框架中bean的生命周期?哪些是重要的bean生命周期方法?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Spring框架中的单例bean是线程安全的吗?为什么? 是的,Spring框架中的单例Bean是线程安全的。 Spring中的单例Bean默认是在容器启动时创建的,并…

【Cpp】位图Bitmap

code #include <iostream> #include <vector> #include <stdio.h> #include <stdint.h>class Bitmap { private:std::vector<uint8_t> data; // 存储位图数据的字节数组uint32_t size; // 位图的大小&#xff08;以位为单位&#x…

springboot整合aop,实现日志操作

前言&#xff1a; 整合之前&#xff0c;我们要明白aop是什么&#xff0c;为什么要用aop&#xff0c;aop能帮我们做什么。 答&#xff1a;AOP是面向切面编程&#xff08;Aspect-Oriented Programming&#xff09;的简称&#xff0c;它是一种编程思想&#xff0c;旨在在面向对象…

【AI视野·今日Sound 声学论文速览 第十期】Fri, 22 Sep 2023

AI视野今日CS.Sound 声学论文速览 Fri, 22 Sep 2023 Totally 1 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Performance Conditioning for Diffusion-Based Multi-Instrument Music Synthesis Authors Ben Maman, Johannes Zeitler, Meinard M lle…

数据库中的DDL与DML

标签&#xff1a;数据库 记录下DDL和DML的相关概念。 数据定义语言 定义数据库模式 数据定义语言DDL(Data-Definition Language)可定义数据库模式。数据库模式在之前的文章中已经提到过了。简单来说&#xff0c;建表用的SQL语句就是DDL。如下代码 CREATE TABLE department(de…

使用Python做一个微信机器人

介绍 简介 该程序将微信的内部功能提取出来&#xff0c;然后在程序里加载Python&#xff0c;接着将这些功能导出成库函数&#xff0c;就可以在Python里使用这些函数 程序启动的时候会执行py_code目录下的main.py&#xff0c;类似于你在命令行使用python main.py。 现在会以…

用《斗破苍穹》的视角打开C#多线程开发1(斗帝之路)

Thread.Start() 是的&#xff0c;我就是乌坦城那个斗之气三段的落魄少爷&#xff0c;在我捡到那个色眯眯的老爷爷后&#xff0c;斗气终于开始增长了。在各种软磨硬泡下&#xff0c;我终于学会了我人生中的第一个黄阶斗技——吸掌。 using System.Threading;namespace Framewo…

第一部分:HTML5

一&#xff1a;网页 1.1&#xff1a;什么是网页&#xff1f; 网站是指在因特网上根据一定的规则&#xff0c;使用HTML等制作的用于展示特定内容相关的网页集合 网页是网站中的一"页"&#xff0c;通常是HTML格式的文件&#xff0c;它要通过浏览器来阅读 网页是构成网…

透视俄乌网络战之四:西方科技巨头的力量

透视俄乌网络战之一&#xff1a;数据擦除软件 透视俄乌网络战之二&#xff1a;Conti勒索软件集团&#xff08;上&#xff09; 透视俄乌网络战之三&#xff1a;Conti勒索软件集团&#xff08;下&#xff09; 西方科技巨头的力量 1. Palantir2. SpaceX3. Maxar Technologies4. Cl…

送水订水小程序商城的作用是什么?

桶/瓶装水有很高的市场需求度&#xff0c;除了家庭外&#xff0c;部分办公场几乎每天都会订水且有一定的合作&#xff0c;由于没有空间限制&#xff0c;因此对桶装水商家来说&#xff0c;本地和外地客户都有较高的拓展度&#xff0c;而传统电话、微信私信订购宣传方式低效且不智…

10.5 串联型稳压电路(1)

稳压管稳压电路输出电流较小&#xff0c;输出电压不可调&#xff0c;不能满足很多场合下的应用。串联型稳压电路以稳压管稳压电路为基础&#xff0c;利用晶体管的电流放大作用&#xff0c;增大负载电流&#xff1b;在电路中引入深度电压负反馈使输出电压稳定&#xff1b;并且&a…

ElasticSearch - 分布式搜索引擎底层实现——倒排索引

目录 一、ElasticSearch 1.1、ElasticSearch 是什么&#xff1f; 1.2、ElasticStack 是什么? 1.3、正向索引和倒排索引 1.3.1、正向索引 1.3.2、倒排索引 a&#xff09;倒排索引的创建过程&#xff1a; b&#xff09;倒排索引的查询过程&#xff1a; c&#xff09;分…

三、初识FreeRTOS之FreeRTOS基础知识

从这节开始&#xff0c;我们正式学习FreeRTOS的一些基础知识&#xff0c;争取做到日更&#xff0c;或者隔日更。如果在学习的过程中哪里有理解错误&#xff0c;希望各位朋友批评指正。因为自己觉得图文并茂好像更容易理解一点&#xff0c;所以在博文中加了大量的图片&#xff0…

Tomcat部署、优化、以及操作练习

一.Tomcat的基本介绍 1.1.Tomcat是什么&#xff1f; Tomcat服务器是一个免费的开放源代码的Web应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试JSP程序的首选。一般来说&#xff0c;T…

APM32F0XX/STM32F0XX内部参考电压VREFINT反算ADC引脚电压

首先打开极海APM32F030x4x6x8xC 用户手册找到VREFINT。 找到内部参考电压 VREFINT为ADC1_IN17通道 使用VREFINT必须使能VREFEN位 初始化ADC代码 void ADC_Init(void) {GPIO_Config_T gpioConfig;ADC_Config_T adcConfig;/* Enable GPIOA clock */RCM_Ena…