公開日:2021年12月5日 / 更新日:2022年1月22日

この記事は、ryokatsu Advent Calendar 2021の5日目の記事です。

あるOSSのソースコードを読んでいたらglobalThisが出てきてそういえばあまり知らないと思ったので何となく調べたことを書きます。

まず以下のコードを実行して見ましょう!

console.log(globalThis === window);

実行するとtrueが返ってきます。globalThisは、windowとイコールです!つまりglobalThisは、グローバルオブジェクトと同じということが分かりました。

Node.jsで扱えるように

globalThisのプロポーザルを読むと、Node.jsではWindowオブジェクトがないことから(同等のシンタックスでglobalがある)ECMAScriptの標準としてglobalThisが出来たということです。確かに、Node.jsとブラウザの両方の環境で動かすユースケースはありそうな気がします。

以下のように書くだけで、ブラウザ、Node.jsなど環境関係なくグローバル変数を参照、設定できます。


globalThis.value = value

Uhyoさんの記事がめちゃくちゃわかりやすいです。

👻globalThis👻と🌏global🌏と🌝this🌝


ソースコードはこちらのリポジトリにあります。

Google Analyticsを使っています。