为什么一些Javascript属性不能在调试器中交互显示?

为什么一些Javascript属性不能在调试器中交互显示?,javascript,debugging,google-chrome,properties,Javascript,Debugging,Google Chrome,Properties,为什么一些Javascript对象属性不能在调试器中交互显示 我有一个复杂的对象“相册”。如果在Chrome调试器中执行以下操作: console.dir(相册) 我得到一个空对象(展开它什么也不显示) 同样,如果我这样做 专辑 我什么也得不到。但是,如果我怀疑它确实包含元素,那么我需要一个特定的属性,例如 专辑[“5146219665061590173”] 我得到了这个复杂对象的各种属性。同样,如果我执行console.log(JSON.stringify(albums)),我将获得属于该对象

为什么一些Javascript对象属性不能在调试器中交互显示

我有一个复杂的对象“相册”。如果在Chrome调试器中执行以下操作:

console.dir(相册)

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

同样,如果我这样做

专辑

我什么也得不到。但是,如果我怀疑它确实包含元素,那么我需要一个特定的属性,例如

专辑[“5146219665061590173”]

我得到了这个复杂对象的各种属性。同样,如果我执行console.log(JSON.stringify(albums)),我将获得属于该对象的所有嵌套对象的完整定义

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


提前感谢。

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

试试这个:

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

您是否尝试过使用cosole.log()而不是console.dir()?这是有道理的,但我不知道如何删除这些属性?@MWood当您使用
console.dir(JSON.parse(JSON.stringify(albums))记录克隆时,它们会被删除吗?是的,它们是。“相册”这个词对我来说毫无意义;表达式“JSON.stringify(albums)”显示属性。表达式“console.dir(JSON.parse(JSON.stringify(albums))”显示了一个空对象。(我还看到它在Chrome中显示了一行“JSON.stringify
给出了正确的结果,但是
JSON.parse,那么会有一些黑暗的魔力在发生(JSON.stringy(obj))
没有。记录的空对象是否有
。\uuuuu proto\uuuuu
?没有。我没有定义原型,事实上我使用相册作为动态字典(键是Facebook对象ID)。