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