"this"は実行コンテキストであるオブジェクトへの参照である。
実行コンテキストとは
まず、 コンテキストとは何かですが、「前後関係、文脈」といった意味になります。
そのためプログラミングではコードを実行する際の状況という意味合いになり、
実行コンテキストとはコードを実行しているコンテキストという意味です。
thisについて
実行中のコンテキストでは以下が使用可能である。
・グローバルオブジェクト
・this
Node.jsではglobalと呼ばれるオブジェクトがグローバルオブジェクトになり、
ブラウザであればWindowがグローバルオブジェクトになる。
thisはデフォルトでグローバルオブジェクトを参照している。
そのため、thisは実行環境によって中身が変わっている。
globalThisについて
上記までで長々と記載してきましたが、実行環境によってthisの中身が変わるためトップレベルでのthisの参照は推奨されておらず、
コードがどの環境で実行されているのかを知らなくても、一貫した方法でグローバルオブジェクトにアクセスすることができるglobalThisが推奨されているようです。
globalThis はグローバルプロパティで、グローバルオブジェクトと同等であるグローバルな this が格納されています。