标题约总结了问题-这是代码示例:
!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({})();
与ES5或ES6无关,箭头函数始终获取封闭函数的上下文。不使用函数调用'use strict';
总是将全局对象作为上下文获取(例如,浏览器中的窗口),使用该上下文时undefined
,默认情况下为上下文。
这是一篇很好的文章,解释了该主题:
https://rainsoft.io/gentle-explanation-of-this-in-javascript/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句