2017-01-09 8 views
0

Поэтому у меня есть объект, который выглядит следующим образом:Введите Javascript неопределен, когда она четко определена, когда я распечатать объект в Consol

console

Очевидно, содержит два ключа «200001» и «201601 ».

Но когда я пытаюсь получить доступ к этим двум переменным, я получаю undefined!

код ниже:

 console.warn($rootScope.layout); 
     console.log('layout 200001', $rootScope.layout[200001]); 
     console.log('layout 201601', $rootScope.layout[201601]); 

ли я что-то отсутствует?

+3

Возможно, это причуда консоли Chrome. Первое сообщение консоли может отображать более поздний статус объекта. См. Http://stackoverflow.com/questions/4057440/is-chromes-javascript-console-lazy-about-evaluating-arrays. Вы можете подтвердить, выполнив 'console.warn (JSON.stringify ($ rootScope.layout))', чтобы принудительно распечатать текущий статус объекта. – JJJ

+1

Возможный дубликат [Является ли консоль JavaScript Chrome ленивой относительно оценки массивов?] (Http://stackoverflow.com/questions/4057440/is-chromes-javascript-console-lazy-about-evaluating-arrays) – hindmost

+0

console.warn (JSON .stringify ($ rootScope.layout)) показывает {} !! Благодаря! – ganjan

ответ

1

Адрес, где вы называете этот код и где он определяется?

Я думаю, что они определяются позже, чем вызывается console.log. Когда вы нажимаете/расширяете переменную $rootScope в хром-консоли, Chrome повторно оценивает эту переменную, а затем вы можете ее увидеть.

+0

Правильно, когда я добавляю console.warn (JSON.stringify ($ rootScope.layout)), он показывает {} – ganjan