问题描述
在 vscode 显示中具有循环引用的对象的控制台.log 包含以下代码段:“[Symbol(network)]: [Circular *1]”。 我明白为什么它是循环的,我想确切的格式是特定于 VS Code 的,但无论哪种方式,我都想了解更多信息 - 例如“*1”的含义。
当我谷歌“[Circular *1]”时,真的很惊讶什么都没出现。怎么回事?
解决方法
它是一个数字,表明它引用的是哪个对象:
const { inspect } = require('util');
const obj = {};
obj.a = [obj];
obj.b = {};
obj.b.inner = obj.b;
obj.b.obj = obj;
console.log(inspect(obj));
// <ref *1> {
// a: [ [Circular *1] ],// b: <ref *2> { inner: [Circular *2],obj: [Circular *1] }
// }
查看每个对象如何具有反映 <ref *n>
的 [Circular *n]
。