отражение javascript: получить переменные - PullRequest
4 голосов
/ 05 июля 2010

как можно получить набор глобальных и / или локальных переменных в javascript?

(например, в Python на globals() или locals())

если в javascript нет таких функций, как некоторые консольные интерфейсы javascript получают их, чтобы иметь возможность автозаполнения?

1 Ответ

4 голосов
/ 05 июля 2010

Вы ищете петлю for / in.

Чтобы получить все глобалы:

for(var name in this) {
    var value = this[name];
    //Do things
}

(Это будет работать правильно только при запуске в глобальной области; вы можете обернуть его в анонимную функцию, чтобы гарантировать это. Однако остерегайтесь with блоков)

Чтобы получить все свойства определенного объекта:

for(var name in obj) {
    //Optionally:
    if (!obj.hasOwnProperty(name)) continue;    //Skip inherited properties

    var value = obj[name];
    //Do things
}

Однако нет способа перебрать все локальные переменные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...