タイトルについての質問が要約されています - これはコード例です:
!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({})();