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();
结果是:“数字为0”但不增加。为什么呢?
答案 0 :(得分:2)
"A string" + "another string" == "A new string"
...并且新字符串不是首先形成它的两个字符串组合的实时更新版本。
即使它是,但是document.write
接受一个字符串,将其表示为HTML,然后将其添加到文档中 - 这样就不会实时更新它。
您需要使用DOM方法来修改HTML文档而不是字符串。 WSC对使用DOM操纵HTML进行了很好的介绍:http://dev.opera.com/articles/view/creating-and-modifying-html/
你有另一个问题,因为count.interval
到null
设置不会停止函数每半秒递增一次计数器:
您需要保留setInterval的返回值,并将其用于clearInterval。
答案 1 :(得分:1)
您还需要在setInterval中使用if语句count.digit == 0
这是一个更清洁的IMO
var count = {
digit: 0,
increment: function() {
var interval = setInterval(function() {
if (++count.digit == 10)
clearInterval(interval);
document.write("The number is " + count.digit);
}, 500);
}
};
count.increment();