首页 > web前端 > js教程 > 如何在 JavaScript 的 `setInterval` 回调中保留 `this` 上下文?

如何在 JavaScript 的 `setInterval` 回调中保留 `this` 上下文?

Patricia Arquette
发布: 2024-11-29 10:34:14
原创
207 人浏览过

How Can I Preserve the `this` Context in JavaScript's `setInterval` Callback?

在 JavaScript 的 setInterval 回调中保留 this

在 JavaScript 中,this 关键字指的是拥有当前正在执行的代码的对象。使用 setInterval 时这可能会出现问题,因为回调函数是在不同的上下文中执行的,从而无法访问原始的 this。要克服这个问题:

在 setInterval 处理程序中访问它

要允许在 setInterval 回调中访问它,我们可以使用 bind() 方法:

this.intervalID = setInterval(this.retrieve_rate.bind(this), this.INTERVAL);
登录后复制

这里,bind(this)确保ret​​rieve_rate回调中的this始终引用设置间隔的对象(即prefs所在的对象)定义)。

通过此修改,您现在可以在 ajax.onload 回调中访问 this.prefs:

ajax.onload = function()
{
    // Access this.prefs here
}
登录后复制

以上是如何在 JavaScript 的 `setInterval` 回调中保留 `this` 上下文?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板