Получить все переменные Javascript? - PullRequest
16 голосов
/ 04 мая 2010

Есть ли способ для javascript, чтобы обнаружить все назначенные переменные? Например, если один файл js создает несколько переменных (глобально ограниченных), может ли последующий файл получить все переменные, не зная, как они называются и какие могут существовать?

Заранее спасибо:)

РЕДАКТИРОВАТЬ, Вопрос Часть 2:

Как мне получить значения этих переменных? Вот что я пытался сделать:

Это то, что я закончил, согласно предложениям комментариев:

for (var name in this) {
    variables[name] = name;
    variables[name]=this[name]
}

Ответы [ 3 ]

25 голосов
/ 04 мая 2010

JavaScript Фланагана «Полное руководство» дает следующее на странице 653:

var variables = ""
for (var name in this)
    variables += name + "\n";
2 голосов
/ 04 мая 2010

Для Firefox вы можете видеть вкладку DOM - легко, но не ответ на ваш вопрос.

Цикл for in, представленный в ответе Кинопико, будет работать, но не в IE. Больше объяснено в статье, связанной ниже.

Для IE используйте RuntimeObject.

if(this.RuntimeObject){
    void function() {
        var ro = RuntimeObject(),
            results = [],
            prop;
        for(prop in ro) {
            results.push(prop);
        }
        alert("leaked:\n" + results.join("\n"));
    }();
}

Смотри также:

1 голос
/ 22 июня 2012

Есть переменная this. Это объект или массив, и вы можете просто указать:

for(i in this) { //do something }

К сожалению, он вернет все под this объектом.

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