globalThisについて調べた

2021-12-05

この記事は、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を使っています。