私は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);
、機能しません。関数呼び出しを引用符で囲む必要があることがわかるまで、関数が 1 回しか実行されない理由を突き止めるためにしばらく時間を費やしました。
異なる言語のバックグラウンドを持っているため、引用符で囲む必要がある理由がわかりません。"updateClock()"
別の関数ではなく、関数に文字列を渡しているようです。関数全体をsetInterval(function(){ ... }, 1000)
.