我似乎无法像这样调用setInterval
函数:
this.timerHandler = setInterval(function(this.myTimerFunction){},1000)
似乎如果我创建一个全局函数并调用它,代码工作得很好但似乎使用this
在本地调用函数,它就不会工作。我试过在这行代码之前调用this.myTimerFunction
并且它实际执行代码并且工作正常,它只是看起来它不想从定时器处理程序执行该函数。
有任何建议可以尝试解决此问题吗? this.myTimerFunction
是btw的原型函数。
答案 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)
如果上下文无关紧要,您可能不需要绑定。