首页 > 其他分享 >JS 深拷贝与浅拷贝

JS 深拷贝与浅拷贝

时间:2023-03-06 11:55:58浏览次数:50  
标签:对象 Object JS 拷贝 assign 赋值

js我们常用赋值的方式进行复制。

对常数项来说赋值后的两个变量没有关系,但是变量是对象的话,值会相互影响,这里存在深拷贝与浅拷贝的问题。

对象的赋值默认是浅拷贝,A=B,两个值互相影响。如果要想不影响,可以用深拷贝。

如果对象里面只有常数项值,可以用Object.assign(Y,X),Object.assign(Y,X1,X2),C = Object.assign({}, A,B) 想将两个或多个对象的属性合并到一起,不改变原有对象的属性,可以用一个空的对象作为target对象

或者用扩展运算符

如果无法判断对象里面值的属性,较为推荐的是B=JSON.parse(JSON.stringify(A))

 

 

参考资料

https://blog.csdn.net/SSophia/article/details/123964733

https://blog.csdn.net/weixin_43290151/article/details/124715850

标签:对象,Object,JS,拷贝,assign,赋值
From: https://www.cnblogs.com/huangxiaowen/p/17183202.html

相关文章

  • Node.js 未来发展趋势
    作者:京东零售郑炳懿前言当下,Node.js作为一种异步I/O和事件驱动编程的语言,在前端和后端领域都具有很高的普及度。同时,Node.js作为一个底层运行时环境,使得开发者可以......
  • JS-表单提交及前端MD5加密问题
    【目标】前端提交密码,通过MD5加密后,浏览器抓包看到的表单信息中,密码是加密后的。【问题】密码加密后输出是加密后的,但是抓包看到的表单数据是明文密码。【问题代码】1......
  • 浅谈js防抖和节流
    防抖和节流是处理高频触发最常见的优化方式,对性能提升有很大的帮助。防抖:将多次的高频操作优化为只在最后一次执行,应用场景如:输入框,只需在最后一次输入进行校验即可。节......
  • js export default problems All In One
    jsexportdefaultproblemsAllInOneproblems潜在的bug维护成本不同人代码的命名不一致solutionnamedexportdemosexportdefault......
  • fastjsonBasicDataSource链分析
    fastjsonBasicDataSource链分析(fastjson<=1.2.36)此利用链只能应用于fastjson<=1.2.36,在1.2.37版本中,直接去掉了key.toString方法。前置知识:首先我们看一下com.sun.or......
  • 汇编指令学习(JMP、JE、JS、JP,JO,J*b)
    一、JMP无条件跳转不用看标志位,jmp后面跟一个内存地址,直接跳转到该地址jmp0x0046B994二、JE(JZ)条件跳转当ZF标致为1的时候发生跳转,为0的时候不跳转,可以双击标志位,进行判断je......
  • 【基数排序算法详解】Java/Go/Python/JS/C不同语言实现
    说明基数排序(RadixSort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的......
  • napi 基于rust 开发nodejs addons 的框架
    目前基于rust开发nodejsaddons的框架是很多了,而且都不错,同时对于安装会基于跨平台构建+githubrelease模式进行安装(对于企业内部不是很友好)napi是一个新的基于rust的......
  • fastjson修改json的时间转换,包含递归json子集的时间
    JSONDateMatchersEnum时间格式枚举类packageconvert;publicenumJSONDateMatchersEnum{DEFAULT_MATCHER("yyyy-MM-ddHH:MM:ss","^((((1[6-9]|[2-9]\\d)\\d{2})-(......
  • json转golang结构
    在Golang中,我们可以使用标准库中的encoding/json包来将JSON数据转换为结构体。本文将介绍如何使用该包将JSON数据转换为Golang结构体。首先,让我们看一下JSON数据的格式。......