关于JSON.parse(JSON.stringify(obj))实现深拷贝应该注意的坑

https://www.jianshu.com/p/b084dfaad501
https://www.cnblogs.com/craftsman-gao/p/5130567.html
    JSON.parse(JSON.stringify())复制时间对象、Error对象、正则表达式,函数,或者undefined等值,此方法就会出现问题
    1.如果json里面有时间对象,则序列化结果:时间对象=>字符串的形式;
    2.如果json里有RegExp、Error对象,则序列化的结果将只得到空对象 RegExp、Error => {};
    3.如果json里有 function,undefined,则序列化的结果会把 function,undefined 丢失;
    4.如果json里有NaN、Infinity和-Infinity,则序列化的结果会变成null;
    5.如果json里有对象是由构造函数生成的,则序列化的结果会丢弃对象的 constructor;
    6.如果对象中存在循环引用的情况也无法实现深拷贝

 

 

posted @ 2020-02-12 15:27  mist006  阅读(719)  评论(0编辑  收藏  举报