Определение этого объекта делает еще один неопределенным? - PullRequest
1 голос
/ 03 мая 2011

У меня есть этот код:

sys.puts(JSON.stringify(data[0].name));

var userData = {
    name: data[0].name,
    screenname: data[0].screen_name,
    id: data[0].id,
    url: data[0].url,
    description: data[0].description
 }

Когда я закомментирую создание объекта userData, все работает нормально, то есть правильно записывает это значение в консоль.Когда я возвращаю его обратно, я получаю эту ошибку:

sys.puts(JSON.stringify(data[0].name));
                    ^
TypeError: Cannot read property 'name' of undefined

Есть идеи, почему это происходит?Это все в одной функции.

1 Ответ

0 голосов
/ 09 августа 2012

Используйте оператор guard для проверки объекта перед доступом к его свойствам:

JSON.stringify(!!window["data"] && data.hasOwnProperty("length") && data[0].hasOwnProperty("name") && data[0].name)

В качестве альтернативы используйте блок try / catch:

try
  {
  JSON.stringify(data[0].name)
  }
catch(e)
  {
  throw("Error")
  }

Ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...