obj = { x:"a",y: "b" }; obj.child = obj; try{ json = JSON.stringify(obj); alert(json) }catch(e){ alert(e); } 如果
调用上述
代码,汇报JSON.stringify报cyclic object value
错误, 而在程序开发的过程中也会出现意外的结果, 为了
解决这个问题有两种办法 第一种 obj = { x:"a",y: "b" }; obj.child = obj; alert(print(obj)); function print(obj){ try{ var seen = []; json = JSON.stringify(obj,function(key,val) { if (typeof val == "object") { if (seen.indexOf(val) >= 0) return; seen.push(val) } return val; }); return json; }catch(e){ return e; } } 第二种 如果非想实现这种结果,那么拷贝原来的对象到新的对象中就行了 obj = { x:"a",y: "b" }; var newobj = {}; newobj.x = obj.x; newobj.y = obj.y; obj.child = newob;