ホームページ > 記事 > ウェブフロントエンド > es6 でトップレベルのオブジェクトを取得する方法は何ですか
es6 最上位オブジェクトの取得方法: 1. "typeof window !== 'unknown' ? window : (...) ? global : this" メソッドを使用して取得します。 2. " を使用します。 var getGlobal = function ( ) {...throw new Error('unable tolocglobal object');};" メソッドを取得します。
このチュートリアルの動作環境: Windows 10 システム、ECMAScript バージョン 6.0、Dell G3 コンピューター。
ES6 より前では、トップレベル オブジェクトとグローバル変数のプロパティは同等でしたが、ES6 ではトップレベルオブジェクトとグローバル オブジェクトが分離され始めました。
宣言されていない変数のエラーはコンパイル段階では報告できず、実行時にのみ報告されます。ただ知られているだけです。
統合されていないトップレベル オブジェクト
グローバル環境では、これは返されます。トップレベルのオブジェクト;
Node モジュールと ES6 モジュールでは、現在のモジュールで this を返します function(1) 単純に関数として実行する場合、これはトップレベルのを返します (2) 厳密モードでは、return unknownnew Function('return this')(); は常にグローバル オブジェクトを返します。 ただし、ブラウザが CSP を使用している場合、eval メソッドと new Function メソッドは使用できない場合があります。CSP: コンテンツ セキュリティ ポリシー、コンテンツ セキュリティ ポリシー。これは、HTTP ヘッダー情報またはメタ要素を通じて Web ページで定義されているホワイトリスト メカニズムを通じて、Web サイトによってロードまたは実行されるリソースに対して機能します。ただし、次の問題も発生しました。
最上位オブジェクトの取得方法eval および関連機能が無効になります。
埋め込まれた JavaScript コードは実行されません。
- リモート スクリプトは、ホワイトリストを通じてのみロードできます。
// 方法1 // 针对 浏览器中 顶层对象是window,但是Node和Web Worker没有window。 ( typeof window !== 'undefined' ? window : ( typeof process === 'object' && typeof require === 'function' && typeof global === 'object' ) ? global : this ); //方法2 // 针对 浏览器和Web Worker中,self也指向顶层对象,但是Node没有self。 var getGlobal = function () { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } throw new Error('unable to locate global object'); };[関連する推奨事項: JavaScript ビデオ チュートリアル
ウェブ フロントエンド]
以上がes6 でトップレベルのオブジェクトを取得する方法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。