Я новичок в JavaScript и объектно-ориентированном программировании. Я пытаюсь создать объект Timer (я предполагаю, что это объект?).
Мой объект не работает, я получаю следующую ошибку: «ReferenceError: не удается найти переменную: countdownTime» (снова и снова).
Мой объект должен создать таймер обратного отсчета. У пользователя есть возможность задать количество времени обратного отсчета (в секундах), от которого отсчитывает таймер (свойство моего объекта). Пользователь также может запускать и останавливать мой таймер (методы). Таймер автоматически останавливается на 0, но может быть остановлен пользователем раньше (пример: пользователь теряет все жизни, а время еще есть - таймер должен закончиться).
Почему это не работает, как ожидалось?
Скрипт: http://jsfiddle.net/bkWTS/
Код:
<div id="output"></div>
<script>
// Timer object
var Timer = function() {
// PROPERTIES
this.countdownTime = 120; // amount of time the timer counts down from in seconds
// METHODS
// Start timer - starts the countdown timer
this.Start = function() {
var timer = setInterval(timerCall, 1000);
};
// End timer
// timer automatically ends when countdown time reaches 0 BUT can be ended early
// Example: User looses all lives and there is still time remaining - timer should end
this.End = function() {
// Stop timer
clearInterval(timer);
};
function timerCall() {
if (countdownTime > 0) {
// Display time in output div
document.getElementById("output").innerHTML = countdownTime;
countdownTime--;
} else {
// Stop timer
clearInterval(timer);
}
}
};
// Create new timer object
var myTimer = new Timer();
// Countdown from 30
myTimer.countdownTime = 30;
// Start the countdown
myTimer.Start();
</script>