SetInterval对象内部对象的功能

时间:2015-10-11 00:07:50

标签: javascript jquery

我试图通过定期替换它的内部HTML来创建一个可以在AlertDialog上工作的对象。尽管如此,我还是定期地对这个部分感到难过。这就是我尝试做的事情(代码的相关部分,我省略了不相关的声明等):

<div>

这导致以下结果 - function LedDisplay() { this.initialize() { window.setInterval(this.redraw, 200); }; this.redraw = function() { this.shiftDisplayMatrix(); $('#' + this.name).html(this.createSvg()); }; this.shiftDisplayMatrix = function() { var firstRow = this.displayMatrix[0]; this.displayMatrix.splice(0, 1); this.displayMatrix.push(firstRow); }; }; 。我相信这是因为this.shiftDisplayMatrix is not a function在全球范围内被调用,并且那里没有redraw。我似乎无法找到的是如何实现我想要的目标。

或许我想要做的是反模式?

1 个答案:

答案 0 :(得分:1)

是的,因为调用this.shiftDisplayMatrix的上下文不再是对象本身,它不再能够访问该函数。您可以尝试做的是

function LedDisplay() {
    var self = this;
    ....
}

然后调用self.shiftDisplayMatrix,我们使用self来保存LedDisplay对象的上下文。