有人可以解释这种行为吗?
此代码段输出TRANSACTIONAL
Parent1
但是使用babel编译的输出是
children
这会输出Window
如果babel只是编译,那么在两种情况下输出都不应该相同吗?为什么(()=>{
console.log(this);
})()
会在babel输出中转换为"use strict";
(function () {
console.log(undefined);
})();
?
答案 0 :(得分:6)
Babel假设您的输入代码是模块,模块以严格模式解释。因此,上面的代码粘贴到浏览器的开发者控制台时非常等同于:
(function() {
"use strict";
(()=>{
console.log(this);
})();
})();
打印undefined
。