在处理程序中执行函数

时间:2012-09-14 13:08:51

标签: javascript

它有什么不同:

function a(){
//...
}

setInterval(a, 1000);

vs

setInterval(function(){
a();
}, 1000);

除了显而易见的是我可以在第二种情况下传递参数。

它不一定是setInterval。任何可以接受函数处理函数的函数。

1 个答案:

答案 0 :(得分:2)

通过匿名函数,您还可以拨打someObject.a()并保留this

如果您编写setTimeout(someObject.a, 300),则会在全局对象的上下文中调用a()方法,以使其thiswindow。如果预计thissomeObject,则会中断。

如果您写setTimeout(function() { someObject.a(); }, 300),将在正确的上下文中调用a()