starting at object with constructor 'Object'
-
js 序列化对象的时候出现这个错误是什么原因?
starting at object with constructor 'Object'
-
这是因为你序列化里面的对象存在循环引用导致的
以下这种情况,使用 JSON.stringify 就会报你这个错
var person = { name: 'hi', age: 3 } person.info = person JSON.stringify(person)
解决方法:将循环引用的对象进行处理
// 定义一个深拷贝的函数 var deepcopy = function() { let cache = []; let str = JSON.stringify(state, (key, value) => { if (typeof value === 'object' && value !== null) { if (cache.indexOf(value) !== -1) { // 移除 return; } // 收集所有的值 cache.push(value) } return value }) cache = null // 清空变量,便于垃圾回收机制回收 return str } // 先深拷贝,在序列化 JSON.stringify(deepcopy(person))
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏