猿问

JavaScriptsetInterval和“this”解决方案

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 ?


守候你守候我
浏览 624回答 3
3回答

摇曳的蔷薇

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

慕的地6264312

的默认行为。setInterval就是绑定到全局上下文。可以通过保存当前上下文的副本来调用成员函数。内部检索率this变量将正确绑定到原始上下文。下面是代码的样子:var self = this;this.intervalID = setInterval(     function() { self.retrieve_rate(); },     this.INTERVAL);额外提示:对于普通函数引用(相对于具有成员函数的对象引用),可以使用JavaScript的call或apply方法。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答