Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.12.2011, 20:15
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

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


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

Как такое может быть? Как сказал бы Гвоздь: "Вы совсем не знаете Javascript".
Ответить с цитированием
  #2 (permalink)  
Старый 02.12.2011, 20:38
Аватар для Magneto
Люмус, Емаксос Developer!
Отправить личное сообщение для Magneto Посмотреть профиль Найти все сообщения от Magneto
 
Регистрация: 06.05.2010
Сообщений: 677

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

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

или
console.log(object['key'])
Ответить с цитированием
  #3 (permalink)  
Старый 02.12.2011, 20:49
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Используется, так проверяется есть ли ключ в объекте.
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.
Ответить с цитированием
  #4 (permalink)  
Старый 04.12.2011, 00:09
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

console.log(this) и console.log('key' in this) следуют одно за другим? Возможно между вызовами состояние объекта изменилось?
Ответить с цитированием
  #5 (permalink)  
Старый 04.12.2011, 04:46
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Свойства объекта, методы и this. Почему свойство вызывается с () ? jsuse Общие вопросы Javascript 2 04.11.2011 20:39
Не могу получить значение атрибута DenQ jQuery 9 06.02.2011 14:33
Объект как свойство объекта Cooskon Общие вопросы Javascript 6 16.02.2010 21:41
Не могу получить высоту из css asci Общие вопросы Javascript 5 30.03.2009 13:31
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00