我是 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>