如何将对象传递给setinterval?

时间:2012-02-17 21:59:29

标签: javascript html5 setinterval game-engine

例如,假设我使用工厂创建一组对象:

function factory() {
    e.x = 0;
    e.y = 0;
    return e;
}

如何将这些对象传递给渲染函数?

例如:

function render() {
    a[0].someMethod;
}

function init() {
    for(i=0;i<10;i++) {
        things[i] = factory();
    }
    setInterval(render(things),40);
}

2 个答案:

答案 0 :(得分:5)

你需要在那里使用闭包:

setInterval(function(){
   render(things);
},40);

setInterval接受回调函数(名称不含()的函数)但是当你这样做时:

setInterval(render(things), 40);

你实际上是(things)里面调用函数(因为setInterval括号)这是错误的。

答案 1 :(得分:1)

setInterval(function() { render(things) },40);