小程序对象深拷贝与浅拷贝


最近在弄小程序项目的时候遇到了一个json对象复制的问题,也就是俗称的深拷贝与浅拷贝了。

一般用变量直接接收就是浅拷贝,那么如何理解浅拷贝与深拷贝的意义呢?

浅拷贝:只是将对象地址的复制,并没有开辟新内存栈,也就是说两个变量都指向了同一个栈地址,对其中一个进行改变删减时,
    另一个值也会同样发生变化,这肯定不是我们想要的结果,例如以下方式直接调用

var oldObj = {"id":"1","name":"小红帽","ages":"12","gender":1,"socre":"90"};
//如果像以下方式调用的时候,则是浅拷贝
var copyObj = oldObj;

深拷贝:则是拷贝对象后存放到一个新内存栈中保存,两者指向不同的栈,改变其中的一个值并不会影响到另一个值

var oldObj = {"id":"1","name":"小红帽","ages":"12","gender":1,"socre":"90"};
//深拷贝
var copyObj = JSON.parse(JSONStringify(oldObj));

好啦,关于深拷贝与浅拷贝的问题就到这,继续敲码....


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM