javascript两种方法实现深拷贝

方法一

对于内容都是一些基本数据类型( string、number、null、undefined、boolean、symbol(ES6新增) 变量值存放在栈内存中,可直接访问和修改变量的值 )的Array或者Object, 可以使用Array.slice(),Array.concat()或者Object.assign()的方法. 这个方法严格意义上讲属于浅拷贝, 但是确实是在内存的堆中复制了一份, 所以如果Array或者object的元素有引用对象的话(如['name','age',{data: 'xxx', attributes: 'xxx'}], 修改引用对象会导致另一个copy的变量发生改变.

方法二

使用JSON.parse(JSON.stringify( array ))可以将array变量进行深拷贝,但是不能处理函数、正则等对象.

参考: https://www.cnblogs.com/ccylovehs/p/9963513.html

原文地址:https://www.cnblogs.com/lyzz1314/p/14078693.html