Javascript通过引用传递变量

时间:2010-02-03 13:44:42

标签: javascript

如何通过引用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();

1 个答案:

答案 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();