ã°ãã¼ãã«ãªãã¸ã§ã¯ãã¯ã©ãã§ãå©ç¨å¯è½ãªå¤æ°ã¨é¢æ°ãæä¾ãã¾ããããã©ã«ãã§è¨èªãç°å¢ã«çµã¿è¾¼ã¾ãã¦ãã¾ãã
ãã©ã¦ã¶ã§ã¯ windowãNode.js ã§ã¯ globalãä»ã®ç°å¢ã§ã¯å¥ã®ååã«ãªã£ã¦ããããããã¾ããã
æè¿ã§ã¯ããã¹ã¦ã®ç°å¢ã§ãµãã¼ããããã¹ãã°ãã¼ãã«ãªãã¸ã§ã¯ãã®æ¨æºçãªååã¨ã㦠globalThis ãè¨èªã«è¿½å ããã¾ããããã¹ã¦ã®ä¸»è¦ãªãã©ã¦ã¶ã§ãµãã¼ãããã¦ãã¾ãã
ããã§ã¯ãç°å¢ããã©ã¦ã¶ã¨ä»®å®ã㦠window ã使ç¨ãã¾ããããä»ã®ç°å¢ã§å®è¡ãããå¯è½æ§ãããå ´åã«ã¯ã代ããã« globalThis ã使ç¨ããã®ãè¯ãã§ãããã
ã°ãã¼ãã«ãªãã¸ã§ã¯ãã®ãã¹ã¦ã®ããããã£ã¸ã¯ç´æ¥ã¢ã¯ã»ã¹ã§ãã¾ã:
alert("Hello");
// åã
window.alert("Hello");
ãã©ã¦ã¶ã§ã¯ãvarï¼let/constã§ã¯ããã¾ããï¼ï¼ã§å®£è¨ãããã°ãã¼ãã«é¢æ°ã夿°ã¯ãã°ãã¼ãã«ãªãã¸ã§ã¯ãã®ããããã£ã«ãªãã¾ã:
var gVar = 5;
alert(window.gVar); // 5 (became a property of the global object)
颿°å®£è¨ï¼é¢æ°å¼ã§ã¯ãªããã¡ã¤ã³ã³ã¼ãããã¼ã®ä¸ã§ function ãã¼ã¯ã¼ãããã¤æï¼ãåã广ãããã¾ãã
ããã«é ¼ããªãã§ãã ããï¼ãã®åä½ã¯äºææ§ã®ããã«åå¨ãã¦ãã¾ããæè¿ã®ã¹ã¯ãªãã㯠JavaScript ã¢ã¸ã¥ã¼ã« ãå©ç¨ãã¾ããããã¨ãã®ãããªãã¨ã¯èµ·ããã¾ããã
代ããã« let ã使ãã¨ããã®ãããªãã¨ã¯èµ·ãã¾ãã:
let gLet = 5;
alert(window.gLet); // undefined (ã°ãã¼ãã«ãªãã¸ã§ã¯ãã®ããããã£ã«ã¯ãªãã¾ãã)
ãã®å¤ãéè¦ã§ãã°ãã¼ãã«ã§è¦ããããã«ãããå ´åã«ã¯ããããã£ã¨ãã¦ç´æ¥è¨è¿°ãã¾ã:
// ãã¹ã¦ã®ã¹ã¯ãªãããã¢ã¯ã»ã¹ã§ãããããç¾å¨ã®ã¦ã¼ã¶æ
å ±ãã°ãã¼ãã«ã«ä½æ
window.currentUser = {
name: "John"
};
// ã³ã¼ãã®ã©ããã§
alert(currentUser.name); // John
// ãããã¯ããã¼ã«ã«å¤æ°ã« currentUser ãããå ´åã«ã¯ã
// æç¤ºçã« window ããåå¾ãããã¨ãå¯è½ã§ã
alert(window.currentUser.name); // John
ã¨ã¯ãããã°ãã¼ãã«å¤æ°ã¯ä¸è¬çã«ã¯æ¨å¥¨ããã¾ãããã§ããã ãå°ãªãããã¹ãã§ãã颿°ã âå ¥åâ 夿°ãå¾ã¦ãæç¢ºãª âçµæâ ãåºåããã¨ããã³ã¼ããã¶ã¤ã³ã¯ãå¤é¨ãã°ãã¼ãã«å¤æ°ã使ç¨ããå ´åãããæç¢ºã§ã¨ã©ã¼ãå°ãªãããã¹ããããããã§ãã
polyfill ã®ããã®ä½¿ç¨
ã°ãã¼ãã«ãªãã¸ã§ã¯ãã使ã£ã¦ãæè¿ã®è¨èªæ©è½ã®ãµãã¼ãããã¹ããã¾ãã
ä¾ãã°ãçµã¿è¾¼ã¿ã® Promise ãªãã¸ã§ã¯ããåå¨ããããã¹ããã¾ãï¼æ¬å½ã«å¤ããã©ã¦ã¶ã§ã¯åå¨ãã¾ããï¼:
if (!window.Promise) {
alert("Your browser is really old!");
}
åå¨ããªãå ´åãâpolyfillâ ã使ã§ãã¾ãï¼ãã®ç°å¢ã§ãµãã¼ãããã¦ããªãããæè¿ã®æ¨æºã¨ãã¦ã¯åå¨ããæ©è½ã追å ï¼ã
if (!window.Promise) {
window.Promise = ... // æ°ããè¨èªæ©è½ã®ã«ã¹ã¿ã å®è£
}
ãµããª
-
ã°ãã¼ãã«ãªãã¸ã§ã¯ãã¯ã©ãã§ãåç §å¯è½ãªå¤æ°ãä¿æãã¦ãã¾ãã
Arrayãªã©JavaScriptçµã¿è¾¼ã¿ã®ãã®ããwindow.innerHeightï¼ãã©ã¦ã¶ã®ã¦ã£ã³ãã¦ã®é«ãï¼ã®ãããªç°å¢åºæã®ãã®ãå«ã¿ã¾ãã -
ã°ãã¼ãã«ãªãã¸ã§ã¯ãã¯æ®éãªåå
globalThisãæã£ã¦ãã¾ããâ¦ã§ãããå¤ãã®å ´åã
window(ãã©ã¦ã¶)ãglobal(Node.js)ã®ãããªãæãªããã®ç°å¢åºæã®ååã§å¼ã°ãã¾ãã -
ã°ãã¼ãã«ãªãã¸ã§ã¯ãã«å¤ãä¿åããã®ã¯ãããã¸ã§ã¯ãã§æ¬å½ã«ã°ãã¼ãã«ã§ãããã®ã ãã«ãã¹ãã§ããããã¦ããã®æ°ã¯ã§ããã ãå°ãªããã¹ãã§ãã
-
ãã©ã¦ã¶ã§ã¯ãã¢ã¸ã¥ã¼ã«ã使ç¨ãã¦ããªãéãã
varã§å®£è¨ãããã°ãã¼ãã«é¢æ°ã夿°ã¯ã°ãã¼ãã«ãªãã¸ã§ã¯ãã®ããããã£ã«ãªãã¾ãã -
ã³ã¼ããå°æ¥æ§ãããçè§£ããããããããã«ãã°ãã¼ãã«ãªãã¸ã§ã¯ãã®ããããã£ã¸ã¯
window.xã®ãããªç´æ¥ã¢ã¯ã»ã¹ããã»ããããã§ãã
ã³ã¡ã³ã
<code>ã¿ã°ã使ã£ã¦ãã ãããè¤æ°è¡ã®å ´åã¯<pre>ãã10è¡ãè¶ ããå ´åã«ã¯ãµã³ãããã¯ã¹ã使ã£ã¦ãã ãã(plnkr, JSBin, codepenâ¦)ã