无法在javascript中使用settimeout递归调用该函数

Dru*_*ter -1 javascript

以下是我的javascript代码.我试图让我的函数timedisplay()每秒触发一次.但它并非如此......

function timedisplay() {
  alert ("Welcome");
  var pelement = document.getElementById("myclock");
  var timeobj = new Date();
  alert (timeobj);
  pelement.innerHTML = timeobj.toLocaleTimeString();
  alert (pelement.toLocaleTimeString());
  settimeout (timedisplay,1000);
}
Run Code Online (Sandbox Code Playgroud)
Timer Clock Testing..
<button onclick="timedisplay()">Click me</button> 
<p id="myclock"></p>
Run Code Online (Sandbox Code Playgroud)

有什么问题?

kik*_*s73 5

你可以考虑调用setInterval函数而不是setTimeout,而你只需要调用一次.虽然在技术上允许setInterval进入回调,但最好将它放在一个单独的函数中,如下所示:

/* the callback */
function refreshTime() {
    var pelement = document.getElementById("myclock");
    var timeobj = new Date();
    pelement.innerHTML = timeobj.toLocaleTimeString();
}

/* start the clock */
function timedisplay() {
    setInterval( refreshTime, 1000 );
}
Run Code Online (Sandbox Code Playgroud)