Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.06.2012, 11:08
Интересующийся
Отправить личное сообщение для milvic Посмотреть профиль Найти все сообщения от milvic
 
Регистрация: 19.02.2008
Сообщений: 11

Почему for (var p in Obj) не находит свойство?
Добрый день, всем.

Либо FB глючит, либо чего то не понимаю, скорее второе

Делаю обход свойств объекта:
for (var p in Obj)
{
// p == null
}
но FireBug показывает что свойство есть, как сиё понимать?
скриншот в аттаче.
Изображения:
Тип файла: jpg js_unknow.jpg (87.4 Кб, 1 просмотров)

Последний раз редактировалось milvic, 05.06.2012 в 14:21.
Ответить с цитированием
  #2 (permalink)  
Старый 04.06.2012, 11:15
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от milvic
но FireBug показывает что свойство есть, как сиё понимать?
скрин ваш не посмотреть, а свойство скорее всего просто не попадает в список перечисляемых
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 04.06.2012, 11:22
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

var obj = { key: "hello!" };

Object.defineProperty( obj, "key", {
    value: obj['key'],
    enumerable: false,
    configurable: true
});

alert( "Свойство key=" + obj['key'] ); // покажем что свойство существует.

for( var p in obj ) {
    alert( p ); // увы но этот алерт не сработает. Хотя свойство есть
}

obj['key'] = "Test"; // назначим что нить

// снова затестим
for( var p in obj ) {
    alert( p ); // увы но этот алерт не сработает. Хотя свойство есть
}
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 04.06.2012 в 11:25.
Ответить с цитированием
  #4 (permalink)  
Старый 04.06.2012, 12:24
Профессор
Отправить личное сообщение для beard Посмотреть профиль Найти все сообщения от beard
 
Регистрация: 08.05.2012
Сообщений: 264

devote,
ES5-shaman
Ответить с цитированием
  #5 (permalink)  
Старый 04.06.2012, 14:37
Профессор
Отправить личное сообщение для beard Посмотреть профиль Найти все сообщения от beard
 
Регистрация: 08.05.2012
Сообщений: 264

Maxmaxmахimus,
ну уже тогда можно было бы так напсать
var obj = {};

Object.defineProperty( obj, "key", {
    value: "hello",
    enumerable: false,
    configurable: true
});

а то Object.defineProperty слегка как Object.settingProperty (с)
Ответить с цитированием
  #6 (permalink)  
Старый 04.06.2012, 14:49
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Maxmaxmахimus
а особенно вот эта строчка value: obj['key'] показывает высочайший уровень мастерства
это лишь иллюстрация была и не более того, а вертеть можно как угодно, благо язык этого не запрещает.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #7 (permalink)  
Старый 04.06.2012, 15:04
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Maxmaxmахimus, кто-то не прав?
Ответить с цитированием
  #8 (permalink)  
Старый 04.06.2012, 15:22
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Maxmaxmахimus Посмотреть сообщение
Да, мсье. Но так чуть больше кода, правда он перестал повторяться . Это же как главный грех в программировании.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассоциативный и обычный массив. Почему не получается получить свойство? jsuse Общие вопросы Javascript 10 04.12.2011 22:14
Свойства объекта, методы и this. Почему свойство вызывается с () ? jsuse Общие вопросы Javascript 2 04.11.2011 20:39