它有什么不同:
function a(){
//...
}
setInterval(a, 1000);
vs
setInterval(function(){
a();
}, 1000);
除了显而易见的是我可以在第二种情况下传递参数。
它不一定是setInterval。任何可以接受函数处理函数的函数。
答案 0 :(得分:2)
通过匿名函数,您还可以拨打someObject.a()
并保留this
。
如果您编写setTimeout(someObject.a, 300)
,则会在全局对象的上下文中调用a()
方法,以使其this
为window
。如果预计this
为someObject
,则会中断。
如果您写setTimeout(function() { someObject.a(); }, 300)
,将在正确的上下文中调用a()
。