setInterval函数不起作用

时间:2014-04-10 23:13:12

标签: javascript

我似乎无法像这样调用setInterval函数:

this.timerHandler = setInterval(function(this.myTimerFunction){},1000)

似乎如果我创建一个全局函数并调用它,代码工作得很好但似乎使用this在本地调用函数,它就不会工作。我试过在这行代码之前调用this.myTimerFunction并且它实际执行代码并且工作正常,它只是看起来它不想从定时器处理程序执行该函数。

有任何建议可以尝试解决此问题吗? this.myTimerFunction是btw的原型函数。

3 个答案:

答案 0 :(得分:1)

语法错误,您还必须考虑上下文

var that=this; //save context

this.timerHandler = setInterval(function(){ //You can not use "this." like parameter
   that.myTimerFunction(params); 
},1000)

如果您不需要在函数中发送参数,可以使用

this.timerHandler = setInterval(this.myTimerFunction,1000);

答案 1 :(得分:0)

试试这个:

this.timerHandler = setInterval(this.myTimerFunction, 1000);

答案 2 :(得分:0)

setInterval需要一个函数和一个区间。

function(this.myTimerFunction){}

应该是:

this.myTimerFunction 要么 this.myTimerFunction.bind(this)

如果上下文无关紧要,您可能不需要绑定。