项目中遇到Uncaught TypeError: Converting circular structure to JSON报错问题

  最近公司项目中出现一个报错Uncaught TypeError: Converting circular structure to JSON,,根据上述报错可以知道代码是运行到JSON.stringify时,抛出了这个错误,代码中使用JSON.parse跟JSON.stringify来实现便捷深复制,网上查询了一圈,原来是要深复制的对象被循环引用,什么意思呢?如下所示

我们声明两个对象,然后把第一个对象赋值给第二个对象里面的一个属性,把第二个对象赋值给第一个对象里的某个属性,此时就是循环引用,这个时候再去使用JSON.string跟JSON.parse来深复制就会报上述的错误,解决办法是再声明一个对象,把你要深复制的对象里的属性赋值给新的对象,然后再进行深复制

此时再运行就发现不会报错了,

 

posted @ 2019-01-07 17:46  清风·流云  阅读(20810)  评论(0编辑  收藏  举报