9

重複の可能性:
ページ内のすべての(javascript)グローバル変数をフェッチする

私のアプリケーションはjavascriptでグローバル変数を使用しています。それらがいくつあるかを見つける方法はありますか?

ありがとうオム

4

5 に答える 5

13

私はそれを作りました。

var GlobalTester = (function(){
    var fields = {};
    var before = function(w){
        for(var field in w){
            fields[field] = true;
        };
    };

    var after = function(w){
        for(var field in w){
            if(!fields[field]){
                 console.log(field + " has been added");
            }            
        };

    };
    return {before: before, after:after};
}());

GlobalTester.before(window);

// Run your code here        
window.blar = "sdfg";      

GlobalTester.after(window);        
​
​

blar has been addedこれはコンソールに出力されます

于 2012-12-28T00:33:47.193 に答える
8

ブラウザの開発者ウィンドウ (F12) でこれを試してください。

Object.keys(window).length
于 2012-12-28T00:34:48.993 に答える
1

次のように window 要素を反復処理します。

for(var globe in window){
 console.log(globe);
}
于 2012-12-28T00:31:51.883 に答える
0

リンターを使用すると、グローバルが導入されたときに警告が表示されます。windowコードの実行前後の項目を比較することもできます。

于 2012-12-28T00:29:30.817 に答える
-2

ウィンドウ オブジェクトを検査しますが、これを行う前にすべてのグローバル変数名を知っておく必要があります。以下に例を示します。

var myGlobalVars = {"global1":0, "global2":0};

function countGlobals() {
    var count = 0;
    for (myGlobalVar in myGlobalVars) {
        if (myGlobalVar in window) {
            count++;
        }
    }

    return count;
}

countGlobals();
于 2012-12-28T00:36:22.557 に答える