我的问题基本上是对这个问题的扩展: var functionName = function() {} vs function functionName() {}。我已经阅读了所有答案,但我认为我仍然错过了这个问题的答案:
为什么函数声明的类型对于 jQuery 的 onComplete 事件和原生 setInterval 方法很重要?此外,为什么对这些很重要,而对普通的 addEventListener 却没有?
带有 onComplete 事件的示例(假设blinkOn()
被调用):
//like this the onComplete event works normally and the functions call eachother
function blinkOn() { $blink.fadeIn( 500, blinkOff ); }
function blinkOff() { $blink.fadeOut( 500, blinkOn ); }
//like this blinkOff won't be called after the fadeIn
function blinkOn() { $blink.fadeIn( 500, blinkOff ); }
var blinkOff = function() { $blink.fadeOut( 500, blinkOn ); };
使用 setInterval 的示例:
//works fine
var timer = setInterval( onTimer, 700);
function onTimer() { ... }
//won't work
var timer = setInterval( onTimer, 700);
var onTimer = function() { ... }
我想知道的原因是因为我希望我的代码保持一致。如果获得它的唯一方法就是使用function a() { ... }
,那没关系。但我认为var a = function() { ... }
在定义范围时更清楚。我真的很好奇。