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