使用JavaScript递增一个数字将返回一个错误
结果是:“数字为0”,但不递增。为什么?使用JavaScript递增一个数字将返回一个错误,javascript,Javascript,结果是:“数字为0”,但不递增。为什么? var count = { digit: 0, increment: function() { setInterval(function() { count.digit++; }, 500); if (count == 10) { count.increment = null; } } }; document.write
var count = {
digit: 0,
increment: function() {
setInterval(function() {
count.digit++;
}, 500);
if (count == 10) {
count.increment = null;
}
}
};
document.write("The number is " + count.digit);
count.increment();
…而新字符串不是最初形成它的两个字符串组合的实时更新版本
即使是,那么document.write
也会获取一个字符串,将其表示为HTML,然后将其添加到文档中,这样也不会实时更新它
您需要使用DOM方法来修改HTML文档,而不是字符串。WSC很好地介绍了如何使用DOM操作HTML:
设置count时还有另一个问题。间隔到null
不会停止每半秒递增计数器的函数,因为:
您没有覆盖每半秒调用一次的函数
将对函数的引用替换为其他引用不会阻止该函数的存在,除非对该函数的所有引用都被覆盖,并且setInterval将维护该引用
您需要保留setInterval中的返回值,并使用它来保存
…而新字符串不是最初形成它的两个字符串组合的实时更新版本
即使是,那么document.write
也会获取一个字符串,将其表示为HTML,然后将其添加到文档中,这样也不会实时更新它
您需要使用DOM方法来修改HTML文档,而不是字符串。WSC很好地介绍了如何使用DOM操作HTML:
设置count时还有另一个问题。间隔到null
不会停止每半秒递增计数器的函数,因为:
您没有覆盖每半秒调用一次的函数
将对函数的引用替换为其他引用不会阻止该函数的存在,除非对该函数的所有引用都被覆盖,并且setInterval将维护该引用
您需要保留setInterval的返回值并将其用于。您还需要在setInterval中包含if语句count.digit==0
在我看来,这有点干净
"A string" + "another string" == "A new string"
您还需要在setInterval中包含if语句count.digit==0
在我看来,这有点干净
"A string" + "another string" == "A new string"
我认为count==10
部分也必须进入区间,我认为count==10
部分也必须进入区间