为什么某些Javascript属性没有在调试器中以交互方式显示

Why are some Javascript properties not displayed interactively in the debugger?

本文关键字:调试器 交互方式 显示 Javascript 属性 为什么      更新时间:2023-09-26

为什么某些Javascript对象属性没有在调试器中以交互方式显示?

我有一个复杂的对象"相册"。如果在Chrome调试器中,我这样做:

console.dir(相册)

我得到了一个空对象(展开它什么都不显示)。

同样,如果我做

相册

我一无所获。然而,如果我怀疑它确实包含元素,则询问特定的属性,例如

相册["51462119665061590173"]

我得到了属于这个复杂对象的各种属性。同样,如果我做console.log(JSON.stringfy(相册)),我会得到属于这个对象的所有嵌套对象的完整定义。

这里的语义我不清楚;为什么某些对象属性没有显示?(当我在带有战略性断点的调试器中运行Javascript程序时,我以为它不起作用,但现在我看到值在那里,它们并不总是显示出来。)

提前谢谢。

当您展开对象以显示属性时,控制台会获取对象的状态,如果属性在console.log/dir之后被删除,则不会显示。

试试这个:

console.dir(JSON.parse(JSON.stringify(albums)));