var 的范围value
可以被该函数内的所有其他函数访问(document ready
在你的情况下(如果你有它,否则它完全是一个全局 var 名称。))。
另一种方法是定义你var
的window
Object** 这将使它对所有外部函数和其他函数也是全局的
使用“通常”方式和一些立即调用函数表达式的示例可以清楚地看到区别:
var text = "Hello!"; // Global
(function sayhello(){
alert(text); // Ok, works
})();
http://jsbin.com/apuker/2/edit
(function defineVar(){
var text = "Hello!"; // Private
})();
(function sayhello(){
alert(text); // No dice
})();
http://jsbin.com/apuker/4/edit
(function defineVar(){
window.text = "Hello!";
})();
(function sayhello(){
alert(text); // Watta?... IT WORKS!
})();
顺便说一句,您的代码应如下所示:(注意#reset
and the nicer if (timer) return;
)
var timer = null,
interval = 1000,
value = 48;
$("#start").click(function() {
if (timer) return; // return - if timer is not null (true).
timer = setInterval(function () {
value++;
$("#input").val(value);
}, interval);
});
$("#reset").click(function() {
value = 0;
});
$("#stop").click(function() {
clearInterval(timer);
timer=null;
});