シンプルなストップウォッチの次のコードがあります。これは、書式設定を一切行わずに秒数のみをカウントします。
function countDown(from, interval, callback) {
interval = interval || 1000;
var current = 0;
var onCount = function() {
current++;
if (current <= from) {
callback(current, from);
setInterval(onCount, interval);
}
}
onCount();
}
これは、次のコードを使用して onclick で呼び出されます。
countDown(600, 1000, function(current, from) {
time_out.innerHTML = current;
});
console.log(current) を入力すると、2 つの問題が確認できます。まず、すべての数値を通過しますが、2 のべき乗でどんどん速くなっていくようです。出力 div では、最初のティックは 1、2 番目は 2、3 番目は 4、4 番目は 8 などになります。さらに、div の更新を停止しても、実際には 600 に達してもカウントを停止しません。ここで何が間違っていましたか?