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

时间:2011-11-16 05:16:20

标签: javascript oop scope implicit

在Javascript中可以将成员函数传递给函数setInterval()。希望这是有道理的,我将向您展示我想要做的代码示例,因为这样更容易解释。

我想每隔10毫秒调用以下函数&a​​mp;能够访问&在该函数中更改类成员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);
}

1 个答案:

答案 0 :(得分:5)

您可以使用类似

的闭包
function myClass()
{
    this.myArray = new Array()
    var that = this;
    setInterval(function() { that.slideLoop() }, 10);
}

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

(例如,我将超时更改为1秒,slice更改为splice以说明)