js引用类型赋值不改变原对象值

摘要:
在JS中,对象的赋值是指默认情况下的赋值。如果更改指定对象,原始对象也将更改。如果要复制赋值,需要重新分配对象:vara={'name':'zhangsan'};varb=对象。分配b、 name='lisi';这样,原始对象的下一层的值不会更改,但如果对象中存在对象,下一层也会更改下一层中的原始对象。处理两个对象的相关性有一个简单而激烈的问题:obj1={a:0,b:{c:0}}};letobj3=JSON。作语法分析目标1.a=4;目标1.b.c=4;这样,原始对象中的对象将不会更改!

 在JS中对象的赋值是默认引用赋值的,如果改变了赋值对象原对象也会跟着改变,如果想要复制赋值,那么就需要重新分配对象:

var a = {'name': 'zhangsan'};
var b = Object.assign({}, a);
b.name = 'lisi';

这样子就不会改变原对象下一层的值,但如果对象里面还存在对象
那么下一层在下一层还会改变原对象,有个最简单暴力的处理 两个对象的关联性的问题:

obj1 = { a: 0 , b: { c: 0}};
let obj3 = JSON.parse(JSON.stringify(obj1));
obj1.a = 4;
obj1.b.c = 4;

这样子原有对象里的对象就不会被改变了!

免责声明:文章转载自《js引用类型赋值不改变原对象值》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇redis实现二级缓存ubuntu网卡配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Redis之有序集合(Zset)

序列号命令和描述1ZADDkeyscore1member1[score2member2]将一个或多个成员添加到有序集合。...

codeforces 765 F Souvenirs 线段树+set

问题的含义:多个查询的间隔中两个数字之差的绝对值的最小值:可以根据查询的l对脱机查询进行排序,并且可以从r到l进行反向查询,并且间隔i+1到n的每次更新都可以确保此更新不会影响下一次和后续更新。因为当两个区间相互覆盖时,具有较小l的区间的值必须小于或等于另一个区间,因此可以绘制一个图来理解。...

css动画延迟好像有点怪

项目需要使用动画Css。自定义时,会发现设置动画延迟和动画持续时间的总时间不正确,这将导致动画丢失。例如,bounceInLeft动画从左侧出现,然后抖动。当初始动画延迟为0时,动画持续时间为1s,动画已完成,但如果设置该值,动画延迟为1s且动画持续时间是2s,则动画未完成。具体的动画是从左侧出现,然后在1s延迟后直接到达终点,但没有抖动。然后我用w3c写了...

解决IDEA打包出现中文乱码的问题

解决方案:1.打开IDEA文件中的设置。...

Kafka监控工具——Kafka-Eagle

Kafka监控工具官网https://www.kafka-eagle.org/是什么KafkaEagle是一款用于监控和管理ApacheKafka的完全开源系统,目前托管在Github,由笔者和一些开源爱好者共同维护。而且,在使用消费者API时,尽量#客户端KafkaAPI版本和Kafka服务端的版本保持#一致性。...