一个不可访问的JavaScript对象属性-为什么Firebug会显示这一点?
所以,我试图访问一个对象的内容,但我一生都不明白为什么我不能。我开始相信这个对象没有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的未定义。(注意:最初错误地表
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如何找到它?