gpt4 book ai didi

javascript - 数字变量始终未定义

转载 作者:行者123 更新时间:2023-11-28 15:35:35 26 4
gpt4 key购买 nike

我想用 JavaScript 构建一个小型秒表。问题是存储时间(秒、分钟、小时)的变量始终是未定义的并且不会增加。我没有发现错误!这里有什么问题吗?有什么解决办法吗?

Test.timer = {
seconds : 0,
minutes : 0,
hours : 0,
timeout : null,
running : 0,

tick: function() {
var self = this;
self.timeout = setTimeout(self.add, 1000);
},

add: function() {
var self = this;

self.seconds++;
if (self.seconds >= 60) {
self.seconds = 0;
self.minutes++;
if (self.minutes >= 60) {
self.minutes = 0;
self.hours++;
}
}

var time = document.getElementById("time");
time.textContent = (self.hours ? (self.hours > 9 ? self.hours : "0" + self.hours) : "00") + ":" + (self.minutes ? (self.minutes > 9 ? self.minutes : "0" + self.minutes) : "00") + ":" + (self.seconds > 9 ? self.seconds : "0" + self.seconds);

self.tick();
},

start: function() {
var self = this;
if (self.running == 0) {
self.running = 1;
self.tick();
}
},

stop: function() {
var self = this;
self.running = 0;
clearTimeout(self.timeout);
}
};

我在时间标签中得到的结果是:“00:00:0NaN”!请帮忙..

最佳答案

因为作用域是窗口而不是计时器

self.timeout = setTimeout(self.add, 1000);

需要

self.timeout = setTimeout( function() { self.add(); }, 1000);

self.timeout = setTimeout(this.add.bind(this), 1000);

关于javascript - 数字变量始终未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25725303/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com