グローバル変数は、プログラミング言語においては悪いプログラミング方法だと常に考えられてきました。しかし実際には、多くの有名なプロジェクトがグローバル変数を広範囲に使用しています。たとえば、MooTools は、Browser
オブジェクトや $$
などの多数のオブジェクトをグローバル空間に配置します。等。最も有名な jQuery もグローバル変数を使用します。したがって、「グローバル変数は悪である」という理論は、実際には非常におかしな状態にあります。
グローバル変数を公開し、(特別に設計されていない限り) ユーザーがそれらを任意に変更できるようにするのは、悪いプログラミング習慣であり、プログラムの保守が困難になります。では、既存のグローバル変数空間にどのようなグローバル変数があるかをどのようにして知ることができるのでしょうか?実際、方法は非常に簡単です:
// UPDATE: This method is too naive // Returns an array of window property names //keys(window); // Inject an iframe and compare its `contentWindow` properties to the global window properties (function() { var iframe = document.createElement('iframe'); iframe.onload = function() { var iframeKeys = Object.keys(iframe.contentWindow); Object.keys(window).forEach(function(key) { if(!(key in iframeKeys)) { console.log(key); } }); }; iframe.src = 'about:blank'; document.body.appendChild(iframe); })();
上記のコードを使用してテストを行うことができます。ファンクション キー F12
を直接押してコンソールを開き、上記のコードを入力します。そして出力結果を見てください。 window
、document
、top
、location
などの一部のオブジェクトは JavaScript に組み込まれていますが、多くのオブジェクトは JavaScript に組み込まれていることがわかります。その他 オブジェクトはサードパーティの JavaScript コードによって生成されます。
推奨チュートリアル: 「JavaScript 基本チュートリアル」
以上がJavaScriptで各種グローバルオブジェクト変数を取得する方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。