JavaScript递归setTimeout

时间:2016-03-09 03:12:03

标签: javascript settimeout javascript-objects

我在JavaScript中定义了这个类:

function Signal(lbl, ho, tag) {
    this.lbl = lbl;
    this.ho = ho;
    this.tag = tag;
    this.getstatus = function () {
        if (this.ho) {
            $.get('/get.cgi?' + this.tag + '=?0', function (data) {
                console.log(data);
                setTimeout(this.getstatus, 1000);
            });
        }
    };
}

一旦调用getstatus,它应该开始使用setTimout调用自己,但事实并非如此!它只能工作一次。

如果我使用没有类的函数,它可以工作!

请帮帮我。

谢谢!

1 个答案:

答案 0 :(得分:3)

问题是当计时器调用getStatus时,方法内的this没有引用该对象,您可以使用{{1}传递this的自定义值}。另请注意,在ajax中,回调bind()引用了ajax设置对象。

this