1

この SO 回答setTimeoutは、 4 つの引数を使用して を呼び出します。

 setTimeout(self.process1, 0, self, u);

これは私を混乱させます。私が見たドキュメントsetTimeoutは、4 つではなく 2 つの引数しか使用していません。

最後の 2 つの引数は何をしますか?

4

2 に答える 2

3

MDN のドキュメントを引用する:

構文

var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]);

最初の構文で追加のパラメーターを関数に渡すことは、Internet Explorer では機能しないことに注意してください。

于 2012-06-29T17:40:06.860 に答える
2

この関数には 2 つの署名があります

var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]);
var timeoutID = window.setTimeout(code, delay);

最初の構文で追加のパラメーターを関数に渡すことは、Internet Explorer では機能しないことに注意してください。

これらの追加のパラメーターの目的に関して、 MDNにあるメモ:

Gecko 13 (Firefox 13.0 / Thunderbird 13.0) より前のバージョンでは、Gecko は追加のパラメーターをコールバック ルーチンに渡し、タイムアウトの「実際の遅延」をミリ秒単位で示していました。この非標準パラメーターは渡されなくなりました。

最初の署名 (2 つ以上のパラメーターを持つ) はすべてのブラウザーでサポートされているわけではないため、個人的にはこれを避けることをお勧めします。

于 2012-06-29T17:39:10.653 に答える