如何通过引用setInterval的回调函数来传递变量?
我不想只为计数器定义一个全局变量。有可能吗?
var intervalID;
function Test(){
var value = 50;
intervalID = setInterval(function(){Inc(value);}, 1000);
}
function Inc(value){
if (value > 100)
clearInterval(intervalID);
value = value + 10;
}
Test();
答案 0 :(得分:4)
如果你为它创建一个闭包,你根本不必传递它,它只能在内部范围内使用,但不能在Test
函数之外:
function Test() {
var value = 50;
var intervalID = setInterval(function() {
// we can still access 'value' and 'intervalID' here, altho they're not global
if(value > 100)
clearInterval(intervalID);
value += 10;
}, 1000);
}
Test();