如何将对象传递给setinterval?

Jon*_*Coe 0 javascript html5 setinterval game-engine

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

function factory() {
    e.x = 0;
    e.y = 0;
    return e;
}
Run Code Online (Sandbox Code Playgroud)

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

例如:

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

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

Sar*_*raz 5

你需要在那里使用闭包:

setInterval(function(){
   render(things);
},40);
Run Code Online (Sandbox Code Playgroud)

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

setInterval(render(things), 40);
Run Code Online (Sandbox Code Playgroud)

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