私の質問は基本的にこれの拡張です: 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() { ... }
しかし、スコープを定義する方がより明確だと思います。そして、私は本当に興味があります。