Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Objets natifs standards
  5. globalThis

Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in EnglishAlways switch to English

globalThis

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨janvier 2020⁩.

La propriété globaleglobalThis renvoie l'objet global de plus haut niveau.

Exemple interactif

function canMakeHTTPRequest() {  return typeof globalThis.XMLHttpRequest === "function";}console.log(canMakeHTTPRequest());// Expected output (in a browser): true

Syntaxe

js
globalThis;

Description

Par le passé, il était nécessaire d'utiliser différentes syntaxes pour différents environnements afin d'accéder à la portée globale. Sur le Web, on peut utiliserwindow,self ouframes ; pour lesweb workers, seulself peut être employé ; pour Node.js aucun de ces mots-clés ne fonctionne et il faut utiliserglobal.Le mot-cléthis pouvait être utilisé à l'intérieur des fonctions enmode non-strict mais vaudra sinonundefined dans les modules et dans les fonctions utilisant lemode strict.

La propriétéglobalThis fournit une méthode standard d'accès à l'objetthis global, quel que soit l'environnement. Contrairement aux propriétéswindow etself, ce mot-clé fonctionnera quel que soit le contexte (que celui-ci soit doté de fenêtres ou non). Ainsi, on peut accéder à l'objet global de façon homogène, quel que soit l'environnement dans lequel le code est utilisé.

Pour mieux mémoriser ce nom, on se rappellera que la valeur dethis dans la portée globale estglobalThis.

Accès indirect à la variable globale dans un contexte web

Dans la plupart des environnements,globalThis sera une référence directe à l'objet global. Cependant, dans les navigateurs web, avec les principes de sécurité relatifs auxiframes et aux liens entre les fenêtres,globalThis fournira unProxy sur l'objet global (auquel on n'aura donc pas accès directement).

Nommage

D'autres noms furent proposés pour cette fonctionnalité (tels queself etglobal) mais ils furent écartés car ils pouvaient entraîner des problèmes de compatibilité avec du code existant. Pour plus de détails, voirle document de la proposition pour le nommage.

Exemples

Avant l'introduction deglobalThis, la seule façon qui permettait d'obtenir l'objet global de l'environnement de façon homogène étaitFunction('return this')(). Toutefois, cela enfreignait certaines règlesCSP avec certains réglages etes6-shim, par exemple, devait utiliser une logique conditionnelle :

js
var getGlobal = function () {  if (typeof self !== "undefined") {    return self;  }  if (typeof window !== "undefined") {    return window;  }  if (typeof global !== "undefined") {    return global;  }  throw new Error("impossible de trouver l'objet global");};var globals = getGlobal();if (typeof globals.setTimeout !== "function") {  // pas de setTimeout pour cet environnement}

AvecglobalThis, il n'est plus nécessaire de parcourir les différents mots-clés des différents environnements :

js
if (typeof globalThis.setTimeout !== "function") {  // pas de setTimeout pour cet environnement}

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-globalthis

Compatibilité des navigateurs

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp