js深拷贝,浅拷贝的解析以及解决方案
深、浅拷贝
简单来说,浅拷贝简单的处理简单数据时候就很ok
到那时遇到复杂数据类型就可能有点吃了,比如数组,你赋值了个另一个变量,这样会导致一个变量改,另一个数据也会发生改变,这或许导致很危险的东西。当然,有时候也会抛出异常,比如释放了那块内存空间,另一个数据去改变,去操作那块地址空间,很有可能会抛出异常……
深拷贝解决了上述问题,
首先,对于简单的一层的数据,我建议使用 ... 运算符
对于有多层的数据, 可是使用 JSON.parse(JSON.stringify(obj)) 来解决
局限性
会忽略 undefined会忽略 symbol不能序列化函数不能解决循环引用的对象
如果你所需拷贝的对象含有内置类型并且不包含函数,可以使用 MessageChannel
使用的时候注意是一个异步的过程
function deepClone (obj) {
return n
共有 0 条评论