Я хочу, чтобы браузер отображал секунды с момента последнего обновления. Я не понимаю, почему Код 1 не работает; Код 2 делает; Если код 1 не работает, почему работает код 3? Вызов setInterval
аналогичен вызову CODE 1 и CODE 3. Способ определения функции отличается. Но мне непонятно, почему это имеет значение.Может кто-нибудь объяснить, что происходит в этом javascript-коде?
Большое спасибо за помощь. Я только начал изучать JavaScript.
КОД 1
<html>
<head>
<title>Time Since Refresh</title>
</head>
<body>
<br/>
<br/>
<span id="timeSinceStart"></span>
<script language="JavaScript">
var timeRefreshed = new Date();
function displayTimeSinceStart(){
var now = new Date();
//compute elapsed time
var elapsed = Math.round((now - timeRefreshed)/1000);
document.getElementById("timeSinceStart").innerHTML = "Time Elapsed: " + elapsed + " seconds.";
}
// Update seconds counter
setInterval(displayTimeSinceStart(), 1000);
</script>
</body>
</html>
КОД 2 же, как код 1, за исключением того, функция setInterval()
записывается как
setInterval("displayTimeSinceStart();", 1000);
КОД 3
<html>
<head>
<title>Time Since Refresh</title>
</head>
<body>
<br/>
<br/>
<span id="timeSinceStart"></span>
<script language="JavaScript">
var timeRefreshed = new Date();
var timeSinceStart = {
displayTimeSinceStart: function(){
var now = new Date();
//compute elapsed time
var elapsed = Math.round((now - timeRefreshed)/1000);
document.getElementById("timeSinceStart").innerHTML = "Time Elapsed: " + elapsed + " seconds.";
}
}
// Update seconds counter
setInterval(timeSinceStart.displayTimeSinceStart, 1000);
</script>
</body>
</html>
Большое спасибо. Это и ваш другой пост были очень полезными. – Curious2learn