我是 javascript 新手,所以我不确定它为什么会这样。
我有一个时钟功能:
function updateClock()
{
var currentTime = new Date();
var currentHours = currentTime.getHours();
var currentMinutes = currentTime.getMinutes();
var currentSeconds = currentTime.getSeconds();
var currentMilliseconds = currentTime.getMilliseconds();
// Pad the minutes and seconds with leading zeros, if required
currentMinutes = ( currentMinutes < 10 ? "0" : "" ) + currentMinutes;
currentSeconds = ( currentSeconds < 10 ? "0" : "" ) + currentSeconds;
// Choose either "AM" or "PM" as appropriate
var timeOfDay = ( currentHours < 12 ) ? "AM" : "PM";
// Convert the hours component to 12-hour format if needed
currentHours = ( currentHours > 12 ) ? currentHours - 12 : currentHours;
// Convert an hours component of "0" to "12"
currentHours = ( currentHours == 0 ) ? 12 : currentHours;
// Update the time display
document.getElementById("clock").innerHTML = currentHours + ":" + currentMinutes + ":" + currentSeconds + " " + timeOfDay;
}
这是在一个单独的clock.js
文件中。我将该文件包含在头中。
我把它放在下面clock div
:
<script type="text/javascript">
setInterval("updateClock()", 1000);
</script>
它有效。但是,如果我将其更改为setInterval(updateClock(), 1000);
,它将无法正常工作。我花了一段时间试图弄清楚为什么函数只执行一次,直到我发现我需要在函数调用周围加上引号。
来自不同的语言背景,我不知道你为什么需要在它周围加上引号?看起来我正在将字符串传递"updateClock()"
给函数而不是另一个函数。我看到其他人的代码,他们只是将整个函数定义为参数,例如setInterval(function(){ ... }, 1000)
.