数组打印出来是[],打印长度为0,但是点开里面有数据(深浅拷贝问题)
在做项目的时候发现两个相差不多的弹窗一个可以显示数据另一个不行,于是我在手机上打印了这
两个数组后发现结果都是[]
我开始在页面上打印我的数据结果是打印出来是[],但是点开后发现有数据,我又打印了长度依然
是0.
下面分享一个这个问题的详细解释的网站[https://www.cnblogs.com/136asdxxl/p/8645750.html]
(https://www.cnblogs.com/136asdxxl/p/8645750.html)
浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。但深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象
1、浅拷贝
浅拷贝只是拷贝基本类型的数据,如果父对象的属性等于数组或另一个对象,那么实际上,子对象获得的只是一个内存地址,因此存在父对象被篡改的可能,浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存
2、深拷贝
深拷贝就是能够实现真正意义上的数组和对象的拷贝。递归调用"浅拷贝"。(深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象)