更新一种对象深度拷贝的方法

一直在为之前看到过的对象深度拷贝代码之复杂而忧桑,我这种脑容量,怎么取记住嘛!而且方法又都不是常用的,能不能简单明了一点!今天,有人告诉我了一个简单明了的方法,下面演示:

	首先,我来定义一个对象obj1:
	let obj1 = {a: '1', b: '2', c: {d: '1'}}
	然后,就是拷贝了:
	let obj2 = JSON.parse(JSON.stringify(obj1));

就…OK啦!
不信看我的效果图!

对象深度拷贝
这里,就拷贝出一个新的对象来啦!
接下来,让我们来改一改对象看看会不会出什么幺蛾子!

对象深度拷贝实例
从结果可以看出,改变源对象(obj1),对拷贝出来的对象(obj2)不会有影响
那改变新对象obj2肯定也不会对源对象obj1有影响了
对象深度拷贝实例
由上图可得出,确实不会。
终于真的有一个如此简单的方法了,学到了学到了,只是希望我不要把顺序记反了的好,毕竟两个JSON.xxx傻傻分不清楚
下面附完整截图

对象深度拷贝实例
下面的没截出来,屏幕不够长了,不过也不影响,obj1还是最开始直接改变之后那个值。

至于原理,看到代码大概能解释一点,JSON.stringfy()方法本来就是将对象转化成json字符串,字符串肯定会开辟一个新的地址,再把它解析为JavaScript对象就好了。

好了,see you!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值