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

浅谈对象的复制拷贝

var t1 = {a:1,b:2}

像这样一般的对象复制我们常使用:

var t2 = Object.assign({},t1);

t2.a = 2;

console.log(t1,t2)//  t1:{a:1,b:2}   t2:{a:2,b:2};

 

或者 var t2 = {...t1};

t2.a = 2;

console.log(t1,t2)//  t1:{a:1,b:2}   t2:{a:2,b:2};

这两种方法使用都是不会影响原来的对象的属性值的,但是当被复制的对象结构里面还有对象时,结果就不一样了

 

var  p1 = {a:1,b:{name:'piter',age:'30'}};

var p2 = Object.assign({},p1);

p2.b.name= 'lisa';

console.log(p1,p2);

结果输出都是{a:1,b:{name:'lisa',age:'30'}};

当修改被复制对象的里面的object部分时,会连带影响,经各种尝试,最后发现,先把对象字符串化,JSON.stringfy

然后把字符串JSON化,JSON.parse一下,再对parse后的对象进行操作就不会相互影响拉。

具体为什么修改被复制对象的里面的object部分会受影响还没探索出来,如有同道中人能解惑,还请不吝赐教

转载于:https://www.cnblogs.com/lr-blog/p/9451150.html

相关文章:

  • java官方网站下载_java下载 7.0 官方版
  • asp.net的% %特定用法
  • java代码shiro注解_java相关:Shiro集成Spring之注解示例详解
  • Oracle Shared Pool机制之——Latches, Locks, Pins and Mutexes
  • java生成apk工具_用Android SDK Build Tools手动构建APK
  • C++常用数据类型
  • java的继承机制有什么好处_JAVA基础-继承机制
  • java类的三种特性_第10章 Java类的三大特性之一:多态
  • 微信公众平台接口测试账号申请
  • java系统类的使用体验_javamelody使用体验
  • 摆花(codevs 1315)
  • java课设要分小组吗_Java团队课程设计-学生成绩管理
  • 惊群 java_(转)测试Lighttpd accept的惊群现象
  • Python——私有化 和 属性property
  • python again_收藏!最全从Python小白到大牛,要走的路这里都有(初级篇)
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 【Amaple教程】5. 插件
  • ES6 学习笔记(一)let,const和解构赋值
  • Java反射-动态类加载和重新加载
  • orm2 中文文档 3.1 模型属性
  • Terraform入门 - 1. 安装Terraform
  • Web Storage相关
  • 关于for循环的简单归纳
  • 聊一聊前端的监控
  • 前端技术周刊 2019-01-14:客户端存储
  • 浅谈Golang中select的用法
  • 我这样减少了26.5M Java内存!
  • 用 Swift 编写面向协议的视图
  • 终端用户监控:真实用户监控还是模拟监控?
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (31)对象的克隆
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (六)激光线扫描-三维重建
  • (南京观海微电子)——I3C协议介绍
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (四)JPA - JQPL 实现增删改查
  • (一)基于IDEA的JAVA基础1
  • (转)Mysql的优化设置
  • (转载)OpenStack Hacker养成指南
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET/C# 使用反射注册事件
  • .NET的数据绑定
  • [20171101]rman to destination.txt
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [BUUCTF 2018]Online Tool(特详解)
  • [C#7] 1.Tuples(元组)
  • [C++]类和对象【上篇】
  • [C++]四种方式求解最大子序列求和问题