js语言和框架-JavaScript语言-深浅拷贝
面5笔5说一下实现JS对象深拷贝的几种方法?
1. JSON.parse( JSON.stringify() ) 序列化和反序列
先将需要拷贝的对象进行JSON字符串化,然后再pase解析出来,赋给另一个变量,实现深拷贝。
2. Object.assign(target, source1, source2)
es6新增的方法,可用于对象合并,将源对象的所有可枚举属性,复制到目标对象上。
3. 迭代递归方法
基本上可以满足常用的数据结构的值的深拷贝,但因为js对象的数据结构较多,所以并不能全部覆盖,比如说new Number(),这种基本数据类型的包装对象,就没有进行处理。
因此在使用时,可以先对所要进行深拷贝的对象进行一个预判,来决定使用哪种方式。