2010-06-03 98 views
3

所以,我試圖訪問一個對象的內容,併爲我的生活無法弄清楚爲什麼我不能。我開始相信該對象沒有Firebug指出的屬性。更可能的是,我只是沒有使用正確的語法來訪問它們。無法訪問的JavaScript對象屬性 - 爲什麼Firebug會顯示它?

提供以下功能:

function(userData) { 
    console.log(userData); // statement 1 
    console.log(userData.t_nodecontent); // statement 2 
} 

其中1

image

undefined for語句2(注生成的語句如下螢火輸出:最初錯誤地指出,我看到unknown

有什麼明顯的,我是o以我試圖引用t_nodecontent的值的方式瀏覽?我茫然:(

+0

你從哪裏得到這個? – kennytm 2010-06-03 18:40:10

回答

2

unknown意味着它的主機對象,就像在的ActiveXObject提供IE的那些

如果曾有過。沒有這樣的屬性,你會看到undefined

所以你訪問它的屬性,它只是有一個不能被ECMAScript中定義的類型。

+1

ActiveX?在Firefox中? – kennytm 2010-06-03 18:19:15

+0

似乎是一個奇怪的情況......我只在你提到的主機對象的某些屬性中看到''unknown''作爲'typeof'運算符的結果,但只在** IE **上,似乎是OP使用Firefox,他只是試圖訪問該屬性...不尋常... – CMS 2010-06-03 18:23:40

+0

@肯尼,呵呵,杜! :) – 2010-06-03 18:30:36

1

試試這個,寫輸出:

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

這個問題,你會發現,userData實際上是[userData]!嘗試訪問userData [0]。 我之前就已經被捕獲了(最近今天有一個Dojo.Data項目的對象屬性)...如果對象在數組中傳遞,Firebug將顯示數組的第一個元素,而不是數組本身。