この SO 回答setTimeout
は、 4 つの引数を使用して を呼び出します。
setTimeout(self.process1, 0, self, u);
これは私を混乱させます。私が見たドキュメントでsetTimeout
は、4 つではなく 2 つの引数しか使用していません。
最後の 2 つの引数は何をしますか?
MDN のドキュメントを引用する:
構文
var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]);
最初の構文で追加のパラメーターを関数に渡すことは、Internet Explorer では機能しないことに注意してください。
この関数には 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 つ以上のパラメーターを持つ) はすべてのブラウザーでサポートされているわけではないため、個人的にはこれを避けることをお勧めします。