使用"Class"成员函数作为setInterval()的参数

saz*_*azr 1 javascript oop scope implicit

在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);
}
Run Code Online (Sandbox Code Playgroud)

Dou*_*ngs 5

你可以使用类似的闭包

function myClass()
{
    this.myArray = new Array()
    var that = this;
    setInterval(function() { that.slideLoop() }, 10);
}
Run Code Online (Sandbox Code Playgroud)

有关示例,请参阅:http://jsfiddle.net/3gyXF/

(对于示例,我将超时更改为1并且将更改为sliceto splice来说明)