0
又有什么区别:执行功能
function a(){
//...
}
setInterval(a, 1000);
VS
setInterval(function(){
a();
}, 1000);
除了明显的,我可以在第二种情况下传递参数。
它不一定是setInterval。任何可以接受函数处理函数的函数。
又有什么区别:执行功能
function a(){
//...
}
setInterval(a, 1000);
VS
setInterval(function(){
a();
}, 1000);
除了明显的,我可以在第二种情况下传递参数。
它不一定是setInterval。任何可以接受函数处理函数的函数。
通过匿名功能还允许您拨打someObject.a()
并保留this
。
如果你写setTimeout(someObject.a, 300)
,该a()
方法将在全球目标的背景下被调用,所以它的this
将window
。如果它预计this
为someObject
,它会中断。
如果您编写setTimeout(function() { someObject.a(); }, 300)
,a()
将在正确的上下文中调用。
它不仅允许你保存'this',而且它允许你传递参数而不用硬编码函数调用的字符串。 – Ian
@ianpgall:是的,但OP已经在问题中说过了。 – SLaks
@SLaks jeez,不敢相信我没有看到,谢谢指出。 – Ian