“这个”在胖箭头功能与通过巴贝尔编译输出

时间:2018-01-19 15:52:30

标签: javascript ecmascript-6 babeljs

有人可以解释这种行为吗? 此代码段输出TRANSACTIONAL

Parent1

但是使用babel编译的输出是

children

这会输出Window

如果babel只是编译,那么在两种情况下输出都不应该相同吗?为什么(()=>{ console.log(this); })() 会在babel输出中转换为"use strict"; (function () { console.log(undefined); })();

1 个答案:

答案 0 :(得分:6)

Babel假设您的输入代码是模块,模块以严格模式解释。因此,上面的代码粘贴到浏览器的开发者控制台时非常等同于:

(function() {
  "use strict";
  (()=>{
    console.log(this);
  })();
})();

打印undefined