【发布时间】:2014-05-02 00:36:49
【问题描述】:
我尝试了各种方法来确保我的计时器变量是全局的(我相信它是全局的)但是为什么我不能清除间隔?
var timer;
function refreshtimer(timer) {
stoptimer(timer);
timer = window.setInterval(postmsg, time*1000);
}
function stoptimer(timer) {
window.clearInterval(timer);
timer = null;
}
我相信这是相关的代码部分;但是,完整的代码可以在here找到。
【问题讨论】:
-
我不明白为什么这个问题被搁置了。代码出了什么问题非常清楚,并且所有必要的代码都被公开了。他们对参数和全局使用相同的变量名,因此从未设置全局,因此
stoptimer从未有机会工作。 -
@jfriend00,下面的方框表明该问题已被搁置,因为它“是由无法再复制的问题或简单的印刷错误引起的”。这对我来说似乎是正确的。
-
@SimonMᶜKenzie - 这不是一个简单的印刷错误,其中 OP 打算输入不同的内容并意外生成了此代码。这段代码是故意这样写的,因为对参数名称如何隐藏对全局变量的访问存在误解。这是一个真正的编程问题,答案是关于它的。为什么不想要合法的编程问题和合法的答案,教一个有用的编程概念来理解?这不是一个错字。这是一个编程错误,答案对此进行了解释/教导。
-
@jfriend00,公平点,但我同意这个问题的解决方式不太可能帮助未来的读者,因为人们在搜索时不太可能找到这个问题对于可变阴影问题 - 也许标题需要重写。
-
@SimonMᶜKenzie - 搜索引擎相关性/准确性是否是将问题标记为离题的标准?我不这么认为,或者这里有超过一半的问题会被认为是题外话。此外,无论如何,大部分搜索引擎相关性都来自我的回答。这并不罕见,因为这些问题描述了症状,通常用模糊的术语和答案往往以更彻底的方式涵盖正在发生的实际问题。我会提出一个更好的标题。
标签: javascript shadowing