Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Перебор свойвств и методов объектов (https://javascript.ru/forum/events/11506-perebor-svojjvstv-i-metodov-obektov.html)

Иваннн 27.08.2010 11:39

Перебор свойвств и методов объектов
 
Доброго времени суток. Для перебора (перечисления ) всех свойвств объекта js существует цикл for in, но он не показывает все свойвства, только без флага dontEnum. Как увидеть все свойвста объекта как браузера, самого js и пользовательских? И основной вопрос как перебрать методы объекта так же как циклом for in?

Kolyaj 27.08.2010 11:55

Цитата:

Сообщение от Иваннн
Как увидеть все свойвста объекта как браузера, самого js и пользовательских?

Угадать только.

Цитата:

Сообщение от Иваннн
как перебрать методы объекта так же как циклом for in?

Методы -- это те же свойства.

Иваннн 27.08.2010 12:13

Цитата:

Сообщение от Kolyaj (Сообщение 68834)


Методы -- это те же свойства.

Да это те же свойства, только их не видно при переборе в цикле for in!

Kolyaj 27.08.2010 12:23

Потому что они имеют атрибут DontEnum.

Иваннн 27.08.2010 12:26

А смысл??????
 
Чем руководствовались разработчики esma, когда некоторые свойвства и все методв наделили этим атрибутом, зачем?

Kolyaj 27.08.2010 13:20

Не все методы. Если добавите свой, он будет перебираться.

Kolyaj 27.08.2010 13:27

Цитата:

Сообщение от Иваннн
зачем?

Ну вот создаёте вы объект
var obj = {
    a: 1,
    b: 'foo',
    c: 'bar'
};
Вы же не хотите, чтобы при переборе свойств этого объекта, помимо a, b и c, вам попадались ещё такие свойства, как hasOwnProperty, toString, valueOf и прочие?

Иваннн 27.08.2010 14:56

Тогда где брать информацию о полной номенклатуре свойств объекта- у производителя браузера?

Kolyaj 27.08.2010 15:11

Например, там, да.


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