一个不可访问的JavaScript对象属性-为什么Firebug会显示这一点?

一个不可访问的JavaScript对象属性-为什么Firebug会显示这一点?,javascript,firebug,Javascript,Firebug,所以,我试图访问一个对象的内容,但我一生都不明白为什么我不能。我开始相信这个对象没有Firebug指出的属性。更有可能的是,我只是没有使用正确的语法来访问它们 提供以下功能: function(userData) { console.log(userData); // statement 1 console.log(userData.t_nodecontent); // statement 2 } 它为语句1生成以下FireBug输出 语句2的未定义。(注意:最初错误地表

所以,我试图访问一个对象的内容,但我一生都不明白为什么我不能。我开始相信这个对象没有Firebug指出的属性。更有可能的是,我只是没有使用正确的语法来访问它们

提供以下功能:

function(userData) {
    console.log(userData);   // statement 1
    console.log(userData.t_nodecontent); // statement 2
}
它为语句1生成以下FireBug输出

语句2的
未定义
。(注意:最初错误地表示我看到的是未知的


在我试图引用
t\u nodecontent
的值时,是否有明显的疏忽?我不知所措:(

试试这个,然后写输出:

for(var key in userData){
   console.log(key, userData[key]);
}

unknown
表示它是一个主机对象,就像IE中ActiveXObject提供的对象一样

如果没有这样的属性,您会看到
未定义


因此,您正在访问它的属性,它只是有一个ECMAScript未定义的类型。

您会发现,问题是userData实际上是[userData]!请尝试访问userData[0]。
我以前也被发现过类似的情况(最近一次是今天,对象属性为Dojo.Data item)…如果对象以数组形式传递,Firebug将显示数组的第一个元素,而不是数组本身。

似乎是一个奇怪的情况…我只看到了
“未知”
由于您提到的主机对象的某些属性中的
typeof
操作符,但仅在IE上,OP似乎正在使用Firefox,他只是试图访问该属性…不寻常…@CMS,谁知道
控制台.log
在后台做什么,我们都知道它不仅仅做
toString()
我犯了一个错误:(它实际上表示未定义。将相应地编辑帖子。因此,如果它出现在Firebug中,但我在尝试引用它时得到了一个未定义的,Firebug如何找到它?