关于标题总结了这个问题 - 这是代码示例:
!function() {
console.log(this); // global object
}();
(function() {
console.log(this); // global object
})();
() => {
console.log(this); // {}
}();
var x = (function() {
console.log(this); // global object
})();
箭头函数在幕后发生了什么?如果我想要 ES5 中的那个范围,据我所知,我必须将执行绑定到一个空对象,如下所示:
!function() {
console.log(this); // global object
}.bind({})();