2012-12-28 3 views
6

可能性の重複を使用するグローバル変数を見つける方法:私のアプリケーションはJavaScriptでグローバル変数を使用している
Fetching all (javascript) global variables in a page私JavaScriptで

。そこにはどれくらいの人がいるのかを見つける方法はありますか?グローバルが導入されたときに警告を表示しますリンターを使用して

おかげ オム

+5

最も簡単な方法は次のとおりです。 'window'オブジェクトを調べます。 – Shmiddty

+0

好奇心から、なぜグローバル変数を設定したいですか?私はそれが必要なケースを考えようとしていますが、私はそれを考え出すことはできません。 – Thomas

+0

@トーマス:最初にアプリケーションを設計したときに使用しましたが、今ではそれらを削除してローカルにしようとしています。 – Ohm

答えて

0

。また、コード実行の前後にあるwindowのアイテムを比較することもできます。

1

このようなウィンドウ要素を繰り返し処理:

for(var globe in window){ 
console.log(globe); 
} 
9

私は1つを作りました。

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);   
​ 
​ 

8

は、お使いのブラウザの開発者のウィンドウでこれを試してみてくださいコンソールでこの意志出力blar has been added(F12):

Object.keys(window).length 
+3

+1 ['Object.keys'](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/keys) –

+2

これは、すべてのプロパティの数を返します。このウィンドウは、OPが関心を持っているものだけではありません。 –

+0

私は答えられません。また、追加しているグローバルがある場合は、['Object.getOwnPropertyNames(window)'](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames)を見てください列挙できないかもしれない。 –

-2

は、ウィンドウオブジェクトを点検し、しかし、あなたはすべてを知っている必要がありますこれを行う前にグローバル変数名を指定してください:

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

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

    return count; 
} 

countGlobals(); 
+2

...分かり、この答えを考えてみてください。その後、それを削除してください。 – Shmiddty

+0

それを考えた後、globalVars変数のプロパティの数を数えることしかできないので、私はあなたの懸念を理解しています。しかし、私はこの質問を解釈すると、プロパティがあるかもしれないし、そうでないかもしれないので、この答えは正当です。 –

+2

OPがすべてのグローバル変数の名前を知っている場合、なぜ彼らはその質問をしますか? – Shmiddty