登录
首页 >  文章 >  前端

匿名函数中的this指向谁?

时间:2024-12-21 18:40:01 478浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个文章开发实战,手把手教大家学习《匿名函数中的this指向谁?》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

匿名函数中的this指向谁?

this关键字与匿名函数执行环境

在浏览器的执行环境中,this关键字指向当前执行代码的上下文对象。在严格模式下,匿名函数没有定义自己的this值,因此this将指向undefined。然而,在非严格模式下,匿名函数的this会指向window对象。

在示例中,settimeout(function() { alert(this.x); }, 2000)是一个匿名函数。由于它在非严格模式下执行,this默认指向window对象,而不是期望的obj对象。因此,当弹出提示框时,它会显示undefined,因为window对象没有x属性。

为了解决此问题,可以通过以下方式将this绑定到obj对象:

obj.y = function () {
  var self = this; // 缓存this值
  settimeout(
    function () { alert(self.x); }, // 使用缓存的this值
    2000
  );
};

或者,可以使用箭头函数,它会自动继承外层函数的this值:

obj.y = function () {
  setTimeout(
    () => { alert(this.x); }, // 箭头函数会继承this值
    2000
  );
};

终于介绍完啦!小伙伴们,这篇关于《匿名函数中的this指向谁?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布文章相关知识,快来关注吧!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>