Baseline Widely available
globalThis
ã¯ã°ãã¼ãã«ããããã£ã§ãã°ãã¼ãã«ãªãã¸ã§ã¯ãã¨åçã§ããã°ãã¼ãã«ãª this
ãæ ¼ç´ããã¦ãã¾ãã
function canMakeHTTPRequest() {
return typeof globalThis.XMLHttpRequest === "function";
}
console.log(canMakeHTTPRequest());
// Expected output (in a browser): true
æ¸è¾¼å¯è½ å¯ åæå¯è½ ä¸å¯ è¨å®å¯è½ å¯ è§£èª¬
徿¥ãã°ãã¼ãã«ã¹ã³ã¼ãã«ã¢ã¯ã»ã¹ããã«ã¯ãJavaScript ç°å¢ãã¨ã«ç°ãªãæ§æãå¿
è¦ã¨ãã¦ãã¾ãããã¦ã§ãä¸ã§ã¯ window
, self
, frames
ã使ããã¨ãã§ãã¾ããããã Web Worker 㯠self
ã®ã¿ãå©ç¨ãããã¨ãã§ãã¾ããNode.js ã¯ãããã®ããããå©ç¨ã§ããã代ããã« global
ã使ç¨ããå¿
è¦ãããã¾ãã this
ãã¼ã¯ã¼ãã¯ãstrict ã§ãªãã¢ã¼ãã§å®è¡ããã¦ãã颿°ã®ä¸ã§ä½¿ç¨ãããã¨ãã§ãã¾ãããstrict ã¢ã¼ãã§å®è¡ããã¦ããã¢ã¸ã¥ã¼ã«ã颿°ã®ä¸ã§ã¯ undefined
ã«ãªãã¾ããFunction('return this')()
ã使ç¨ãããã¨ãã§ãã¾ãããCSP ãªã©ã«ãã£ã¦ eval()
ãç¡å¹ã«ãã¦ããç°å¢ã§ã¯ããã®æ¹æ³ã§ã Function
ã®ä½¿ç¨ãæå¶ããã¾ãã
globalThis
ããããã£ã¯ãç°å¢ãè¶ãã¦ã°ãã¼ãã«ãª this
å¤ (ããªãã¡ã°ãã¼ãã«ãªãã¸ã§ã¯ãèªèº«) ã«ã¢ã¯ã»ã¹ããããã®æ¨æºçãªæ¹æ³ãæä¾ãã¾ããwindow
ã self
ãªã©ã®åæ§ã®ããããã£ã¨ã¯ç°ãªããããã¯ã¦ã£ã³ãã¦ã®ã³ã³ããã¹ãã§ãéã¦ã£ã³ãã¦ã®ã³ã³ããã¹ãã§ãåä½ãããã¨ãä¿è¨¼ããã¦ãã¾ãããã®æ¹æ³ã§ã¯ãã³ã¼ããã©ã®ç°å¢ã§å®è¡ããã¦ããã®ããç¥ããªãã¦ããä¸è²«ããæ¹æ³ã§ã°ãã¼ãã«ãªãã¸ã§ã¯ãã«ã¢ã¯ã»ã¹ãããã¨ãã§ãã¾ããååãè¦ããããããããã«ãã°ãã¼ãã«ã¹ã³ã¼ãã§ã¯ this
ã®å¤ã¯ globalThis
ã§ãããã¨ãå¿ããªãã§ãã ããã
å¤ãã®ã¨ã³ã¸ã³ã§ã¯ globalThis
ã¯å®å¨ã®ã°ãã¼ãã«ãªãã¸ã§ã¯ãã®åç
§ã«ãªãã¾ãããã¦ã§ããã©ã¦ã¶ã¼ã«ããã¦ã¯ãiframe ããã³ã¦ã£ã³ãã¦éã®ã»ãã¥ãªãã£ä¸ã®é
æ
®ããããã㯠(ç´æ¥ã¢ã¯ã»ã¹ã§ããªã) å®å¨ã®ã°ãã¼ãã«ãªãã¸ã§ã¯ãã«é¢ãã Proxy
ã«ãªãã¾ããä¸è¬çãªå©ç¨ã«é¢ãããã¨ã¯ç¨ã§ãããèªèãã¦ãããã¨ã¯éè¦ã§ãã
self
ã global
ã®ãããªä»ã®ä¸è¬çãªååã®é¸æè¢ã¯ãæ¢åã®ã³ã¼ãã¨ã®äºææ§ãæãªãå¯è½æ§ããããããåè£ããé¤å¤ããã¾ããã詳ãã㯠language proposal's "naming" document ãåç
§ãã¦ãã ããã
globalThis
以åã¯ããã®ç°å¢ã®ã°ãã¼ãã«ãªãã¸ã§ã¯ããåå¾ããä¿¡é ¼æ§ã®é«ãæ¹æ³ã¯ Function('return this')()
ã ãã§ããããã ããããã¯è¨å®ã«ãã£ã¦ã¯ CSP éåãçºçããããães6-shim ã§ã¯æ¬¡ã®ãããªãã§ãã¯ã使ç¨ãã¾ãã
var getGlobal = function () {
if (typeof self !== "undefined") {
return self;
}
if (typeof window !== "undefined") {
return window;
}
if (typeof global !== "undefined") {
return global;
}
throw new Error("unable to locate global object");
};
var globals = getGlobal();
if (typeof globals.setTimeout !== "function") {
// no setTimeout in this environment!
}
globalThis
ãå©ç¨å¯è½ã«ãªã£ããããç°ãªãç°å¢éã§ã°ãã¼ãã«ã追å ã§æ¤ç´¢ããå¿
è¦ããªããªãã¾ããã
if (typeof globalThis.setTimeout !== "function") {
// no setTimeout in this environment!
}
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4