梗概
- 原生的[[循环引用引起JSON.stringify错误|[JSON.stringify]]方放不能序列化一个循环引用的对象,因为这个对象有无限层成员
解决方案
之一
梗概
- 对首尾相接的引用,不引用真的对象,而是深拷贝一个对象出来,引用这个新的对象
代码
const x = { a: 8 };
const b: any = { x, y: undefined };
b.y = JSON.parse(JSON.stringify(b))
console.log(b)
结果: { x: { a: 8 }, y: { x: { a: 8 } } }
之一
一个 JSON 扩展包 做到了这一点, 使用 JSON.decycle 可以去除循环引用