JavaScript:グローバルオブジェクト問題
Web ブラウザではグローバルオブジェクトは window だが、Node.js のグローバルオブジェクトは global である。
Node.js では window オブジェクト(及びそのプロパティ)が存在しないので、エラーを起こす。
Web プラウザでは、global オブジェクト(及びそのプロパティ)が存在しないので、エラーを起こす。
globalThis が ECMA2020 から用意されるようになった。
globalThis が必要な理由
既にそのプロパティがグローバルに定義されているかどうかを判定するには、グローバルオブジェクトを指定するしかない。
if (globalThis.something === undefined) { ... }
汎用的な関数で、対象オブジェクトにアクセスする場合、グローバルを示すオブジェクトとして、globalThis が必要になる。