Javascript-如果没有setInterval函数,这个时钟函数如何更新时间?

Javascript-如果没有setInterval函数,这个时钟函数如何更新时间?,javascript,time,settimeout,setinterval,Javascript,Time,Settimeout,Setinterval,我认为startTime只调用一次,setTimeout也是。为什么不需要设置间隔呢 function startTime() { var today = new Date(); var h = today.getHours(); var m = today.getMinutes(); var s = today.getSeconds(); m = checkTime(m); s = checkTime(s); document.getElementById('tim

我认为startTime只调用一次,setTimeout也是。为什么不需要设置间隔呢

function startTime() {
  var today = new Date();
  var h = today.getHours();
  var m = today.getMinutes();
  var s = today.getSeconds();
  m = checkTime(m);
  s = checkTime(s);
  document.getElementById('time').innerHTML =
  h + ":" + m + ":" + s;
  var t = setTimeout(startTime, 500);
}
function checkTime(i) {
  if (i < 10) {i = "0" + i};  // add zero in front of numbers < 10
  return i;
}

starTime()

该函数在末尾调用自身:

var t=setTimeoutstartTime,500


无论何时调用该函数,都会设置另一个超时。它有效地充当了setInterval,但这样做也只允许您在某些条件下设置超时

函数在结束时调用自身:

var t=setTimeoutstartTime,500


无论何时调用该函数,都会设置另一个超时。它有效地充当了setInterval,但这样做也只允许您在某些条件下设置超时

它称自己为var t=setTimeoutstartTime,500;递归地,因为它在自身内部,所以您不希望它永远运行^foreverIt调用自身var t=setTimeoutstartTime,500;递归因为它在自身内部,所以您不希望它永远运行^foreverth这是真的,但变量已定义且从未调用过?@dstana setTimeout函数仍被调用。该变量只是保存setTimeout的返回值,setTimeout是一个超时ID,稍后可以在调用clearTimeout时传递该ID。但是,这里不需要变量赋值,因为它没有被使用。我明白了,在函数本身中调用函数会在这里创建一个无限循环。所以500的超时实际上就是它运行的速度。500 timeout=每秒两次这是真的,但变量已定义且从未调用?@dstana setTimeout函数仍被调用。该变量只是保存setTimeout的返回值,setTimeout是一个超时ID,稍后可以在调用clearTimeout时传递该ID。但是,这里不需要变量赋值,因为它没有被使用。我明白了,在函数本身中调用函数会在这里创建一个无限循环。所以500的超时实际上就是它运行的速度。500超时=每秒两次