为什么<script type =“module”>中的“this”未定义?

时间:2018-02-07 18:07:39

标签: javascript html ecmascript-6

使用ECMAScript模块只是发现在类型模块的脚本的“全局”范围内调用 this undefined 但是在正常的脚本中,它引用了到 window 对象

&#xA;&#xA;

ES模块脚本

&#xA;&#xA;

&#xD;&#xA;
&#xD;&#xA;
 &lt; script type =”module“&gt;&#xD;&# XA;的console.log(本); // undefined&#xD;&#xA; &LT; /脚本&GT;  
&#的xD;&#XA;
&#的xD;&#XA;
&#的xD;&#XA;

& #xA;&#xA;

普通脚本

&#xA;&#xA;

&#xD;&#xA;
&#xD;&#xA;
 &lt; script&gt;&#xD;&#xA;的console.log(本); // window object&#xD;&#xA; &LT; /脚本&GT;  
&#的xD;&#XA;
&#的xD;&#XA;
&#的xD;&#XA;

& #xA;&#xA;

有没有关于此的规格,或者有人可以解释我为什么?

&#xA;

1 个答案:

答案 0 :(得分:3)

选择ES6模块,使其this值为undefined。您可以在8.1.1.5.4 Module Environment Records: GetThisBinding()中看到规范定义。

  

8.1.1.5.4 GetThisBinding()

     
      
  1. 返回undefined。
  2.