Свойство недоступного объекта JavaScript - почему Firebug показывает это? - PullRequest
3 голосов
/ 03 июня 2010

Итак, я пытаюсь получить доступ к содержимому объекта и, по жизни, не могу понять, почему я не могу. Я начинаю верить, что у объекта нет свойств, которые Firebug указывает, что он имеет. Скорее всего, я просто не использую правильный синтаксис для доступа к ним.

Дайте следующую функцию:

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

, который генерирует следующий вывод FireBug для оператора 1

image

и undefined для утверждения 2. (Примечание: изначально неправильно указывалось, что я видел unknown)

Есть ли что-то очевидное, что я упускаю из виду, когда пытаюсь сослаться на значение t_nodecontent? Я в растерянности: (

Ответы [ 3 ]

2 голосов
/ 03 июня 2010

unknown означает, что это хост-объект, аналогичный объектам, предоставленным ActiveXObject в IE.

Если бы не было такого имущества, вы бы увидели undefined

Итак, вы получаете доступ к его свойству, просто у него есть тип, не определенный в ECMAScript.

1 голос
/ 25 января 2011

Проблема, которую вы обнаружите, состоит в том, что userData на самом деле [userData]! Попробуйте получить доступ к userData [0]. Я был пойман, как это раньше (последний раз сегодня со свойством объекта элемента Dojo.Data) ... если объект передается в массиве, Firebug отображает первый элемент массива, а не сам массив.

1 голос
/ 03 июня 2010

Попробуйте это и напишите вывод:

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