web-dev-qa-db-ja.com

すべてのJavascript変数を取得しますか?

Javascriptが割り当てられたすべての変数を検出する方法はありますか?たとえば、1つのjsファイルが一連のvar(グローバルスコープ)を作成する場合、後続のファイルは、名前と存在する可能性のあるものを知らなくても、すべてのvarを取得できますか?

前もって感謝します :)

編集、質問パート2:

これらの変数の値を取得するにはどうすればよいですか?これが私が試みたものです:

コメントの提案によると、これは私が最終的に得たものです:

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

Flanaganの「JavaScript-TheDefinitive Guide」では、653ページに次のように記載されています。

var variables = ""
for (var name in this)
    variables += name + "\n";
28
user181548

Firefoxの場合、[DOM]タブが表示されます。質問への回答ではありませんが、簡単です。

for in Kinopikoの回答で提供されているループは機能しますが、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"));
    }();
}

参照:

4
Garrett