Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не могу получить свойство объекта (https://javascript.ru/forum/misc/23706-ne-mogu-poluchit-svojjstvo-obekta.html)

FINoM 02.12.2011 20:15

Не могу получить свойство объекта
 
Обнаружил странную проблем при работе с jQ.tmpl, пытаюсь получить свойство key, которое видно в консоли при выводе всего объекта, но не получается.
console.log(this);


console.log('key' in this); //false

Как такое может быть? Как сказал бы Гвоздь: "Вы совсем не знаете Javascript".

Magneto 02.12.2011 20:38

Я мало что понимаю в jQ, но выражение (key in object) является частью инструкции for/in и само по себе вроде как не используется.

Поэтому:
console.log(object.key)

или
console.log(object['key'])

FINoM 02.12.2011 20:49

Используется, так проверяется есть ли ключ в объекте.
o = {a:5; b:4; c:1}
log('b' in o);//true
log('d' in o);//false

Цитата:

Сообщение от Magneto
console.log(object.key)

или
console.log(object['key'])

Выдает undefined.

x-yuri 04.12.2011 00:09

console.log(this) и console.log('key' in this) следуют одно за другим? Возможно между вызовами состояние объекта изменилось?

FINoM 04.12.2011 04:46

Цитата:

Сообщение от x-yuri
console.log(this) и console.log('key' in this) следуют одно за другим? Возможно между вызовами состояние объекта изменилось?

Да, один за другим. Товарищи с хабра подсказали, что this.key в момент вызова не определен и в консоль выводится не состояние объекта на момент вызова console.log, а текущее состояние. Таки да, поставив таймаут на вывод this.key, значения вывелись корректно.


Часовой пояс GMT +3, время: 18:17.