我想用 Javascript 创建一个简单的计时器,它从给定时间倒计时直到它达到 0。我发现这个教程效果很好。我的问题是我需要在同一页面上放置多个计时器。本教程显然不会这样做,因为它使用全局变量(我是 JS/Programming 的新手,所以我可能没有使用正确的术语)。我试图重新创建相同的东西,只创建每个计时器作为它自己的对象,这样它们就不会相互干扰。这就是我所拥有的。
function taskTimer(name, startTime) {
this.timer = name;
this.totalSeconds = startTime;
this.tick = function() {
if (this.totalSeconds <= 0) {
return;
}
this.totalSeconds -= 1;
this.updateTimer();
// window.setTimeout("this.tick()", 1000);
};
this.updateTimer = function(){
this.seconds = this.totalSeconds;
this.hours = Math.floor(this.seconds / 3600);
this.seconds -= this.hours * (3600);
this.minutes = Math.floor(this.seconds / 60);
this.seconds -= this.minutes * (60);
this.timeString = this.leadingZero(this.hours) + ":" + this.leadingZero(this.minutes) + ":" + this.leadingZero(this.seconds);
return this.timeString;
};
this.leadingZero = function(time){
return (time < 10) ? "0" + time : + time;
};
}
var testTimer = new taskTimer("timer", 30);
testTimer.tick();
我在最后创建了一个。运行
testTimer.updateTimer();
返回00:00:30
正确,但运行testTimer.tick();
没有返回值。这部分代码显然有问题,我无法弄清楚。