function functionObjStringify(circularObj){
var cache = [];
var str = JSON.stringify(circularObj, function(key, value) {
if (typeof value === 'object' && value !== null) {
if (cache.indexOf(value) !== -1) {
// 移除
return;
}
// 收集所有的值
cache.push(value);
}
if (typeof(value) === "function") {
return value.toString()
}
return value;
});
cache = null; // 清空变量,便于垃圾回收机制回收
return str // 移除掉循环引用的 JSON.stringify
}
var b = {
a:122,
b: ()=>{console.log(233)}
}
circularObjStringify(b) // '{"a":122,"b":"()=>{console.log(233)}"}'