開発者ドキュメント

新しいglobalThisJavaScriptプロパティ

globalThis という新しいプロパティを使用すると、JavaScriptのグローバルオブジェクトにクロスプラットフォームでアクセスできます。

JavaScriptでグローバルプロパティにアクセスすることは、常にいくつかの困難をもたらしてきました。 これは、プラットフォームごとにアクセス方法が異なるためです。

クライアント側のJavaScriptのみを作成している場合、これは大きな問題ではありません。 あなたは単に書くことができます window グローバルオブジェクトと対話します。

ただし、複数のプラットフォームで動作するポータブルJavaScriptを作成する必要がある場合に問題が発生します(例:Node.jsとクライアントの両方で動作するlodashのようなライブラリ-側)。


一般的な解決策は、次のようなコードを使用するシムを使用して、使用可能なグローバルオブジェクトを決定することです。

var getGlobal = function () { 
  if (typeof window !== 'undefined') {
    return window;  // Client-side JavaScript 
  } 
  if (typeof self !== 'undefined') {
    return self;    // Client-side JavaScript / Web workers
  } 
  if (typeof global !== 'undefined') {
    return global;  // Node.js
  } 
}; 

var __global__ = getGlobal(); 

if (typeof __global__.alert === 'function') { 
  console.log('Client-side land!');
} else {
  console.log('Node.js land!');
};

globalThisを使用する

以来 globalThis Node.js / client-side / Webワーカーで利用可能であり、グローバルオブジェクトとの対話がはるかに簡単になります!

if (typeof globalThis.alert === 'function') { 
  console.log('Client-side land!');
} else {
  console.log('Node.js land!');
}

使用しているプラットフォームの検査に別れを告げます。 ✌️

結論

現在 globalThis はステージ3ECMAScriptプロポーザルです。 ただし、Chrome、Firefox、Safari(デスクトップ/モバイル)を含む多くのブラウザでは、この新しいAPIがすでに利用可能になっています。

に関する詳細情報について globalThis チェックアウトAxelRauschmayerのブログ投稿📰

モバイルバージョンを終了