为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScriptsetInterval和“this”解决方案

JavaScriptsetInterval和“this”解决方案

守候你守候我 2019-07-05 14:55:30
JavaScriptsetInterval和“this”解决方案我需要进入this从我的setInterval处理程序prefs: null,startup : function()     {         // init prefs         ...         this.retrieve_rate();         this.intervalID = setInterval(this.retrieve_rate, this.INTERVAL);     },retrieve_rate : function()     {         var ajax = null;         ajax = new XMLHttpRequest();         ajax.open('GET', 'http://xyz.com', true);         ajax.onload = function()         {             // access prefs here         }     }我如何访问这个.prefs在ajax.onload ?
查看完整描述

3 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

this.intervalID = setInterval(this.retrieve_rate.bind(this), this.INTERVAL);


查看完整回答
1 反对 回复 2019-07-05
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

的默认行为。setInterval就是绑定到全局上下文。可以通过保存当前上下文的副本来调用成员函数。内部检索率this变量将正确绑定到原始上下文。下面是代码的样子:

var self = this;this.intervalID = setInterval(
    function() { self.retrieve_rate(); },
    this.INTERVAL);

额外提示:对于普通函数引用(相对于具有成员函数的对象引用),可以使用JavaScript的callapply方法。


查看完整回答
反对 回复 2019-07-05
  • 3 回答
  • 0 关注
  • 623 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号