2010-07-05 2 views
4

Как можно получить коллекцию глобальных и/или локальных переменных для javascript?javascript reflection: get variables

(как, например, в Python с помощью globals() или locals())

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

+0

здесь я нашел довольно похожий вопрос: http://stackoverflow.com/questions/3831932/access-all-local-variables – mykhal

ответ

4

Вы ищете цикл 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 
} 

Однако, нет никакого способа, чтобы перебрать все местного переменных.

+0

ну, это объект в (tro) spection, не совсем то, что я прошу , но определенно полезно для отражения в браузере. – mykhal

+0

Тогда что вы просите? – SLaks

+0

SLaks: вы заметили, что этого будет невозможно, если это так (он еще не был там во время написания моего предыдущего комментария) – mykhal