0

どんな違いがあるの:

function a(){
//...
}

setInterval(a, 1000);

setInterval(function(){
a();
}, 1000);

2番目のケースでパラメーターを渡すことができることは明らかです。

必ずしも setInterval である必要はありません。関数ハンドラを受け入れることができる任意の関数。

4

1 に答える 1

2

匿名関数を渡すと、 を呼び出しsomeObject.a()て保持することもできますthis

と書くsetTimeout(someObject.a, 300)と、a()メソッドはグローバルオブジェクトのコンテキストで呼び出されるためthiswindow. であると期待thisするとsomeObject、壊れます。

と書くとsetTimeout(function() { someObject.a(); }, 300)a()正しいコンテキストで呼び出されます。

于 2012-09-14T13:10:46.570 に答える