練習の一環として、2秒ごとに1つのクロックを「刻む」「バイナリクロック」を表示する簡単な関数を書きました。私が書いた関数は、実際にはHTML形式(フォーム内の値は何度も変更される)でそれを行う同様のコードの変更です。JavascriptのsetTimeout関数がsetIntervalのように動作するのはなぜですか?
は、ここに私のJS-のみの変更です:
function binaryClock() {
let currentTime = new Date();
let hr = currentTime.getHours();
let mn = currentTime.getMinutes();
let sc = currentTime.getSeconds();
setTimeout('binaryClock()', 2000);
document.body.innerHTML = '';
document.write(hr + ':' + mn + ':' + sc + ' ');
}
binaryClock();
任意のクロックは、バイナリ時計のコールバックでのsetIntervalなどのsetTimeout
行為という意味では同じように、それは実際に、intervallicを働くのはなぜ?
代わりにsetInterval()
を使用した場合、私は全く同じ結果を得ています。初心者の方でも、なぜこの特定のケースで、なぜ通常は1回実行されるのかを説明する十分な知識がありませんこの場合はsetInterval()
のようになり、私の研究でこのような違いが出てくることはありませんでしたので、ここでそれを聞くことが重要です。
「binaryClock」を呼び出すたびに、 'Timeout'が' set'されて 'binaryClock'が呼び出されます。 ... 'set'は' binaryClock'を呼び出す 'Timeout'です。 ... 'set'は' binaryClock'を呼び出す 'Timeout'です。 ... 'set'は' binaryClock'を呼び出す 'Timeout'です。 ... 'set'は' binaryClock'を呼び出す 'Timeout'を返します... – deceze
私は今度はrecurisivnessを理解しており、自分自身への呼び出しを含む関数を見るとこの動作を再帰的に呼びます。 – sangoko