在Javascript中可以将成员函数传递给函数setInterval()。希望这是有道理的,我将向您展示我想要做的代码示例,因为这样更容易解释。
我想每隔10毫秒调用以下函数&能够访问&在该函数中更改类成员this.myArray()(每次调用函数时)。
function myClass()
{
this.myArray = new Array()
setInterval(this.slideLoop, 10);
}
// THE WHOLE POINT OF ALL THIS IS SO I CAN ACCESS THE ARRAY this.myArray()
// INSIDE THE FOLLOWING FUNCTION WHEN ITS CALLED FROM setInterval() EVERY 10ms
myClass.prototype.slideLoop = function()
{
alert( this.myArray[0] );
this.myArray.slice(0,1);
}
答案 0 :(得分:5)
您可以使用类似
的闭包function myClass()
{
this.myArray = new Array()
var that = this;
setInterval(function() { that.slideLoop() }, 10);
}
有关示例,请参阅:http://jsfiddle.net/3gyXF/
(例如,我将超时更改为1秒,slice
更改为splice
以说明)