0

我知道这可能是一个简单的答案,但我无法将我的函数与setInterval. 这是我到目前为止所拥有的:

function countUp(n) {
     console.log(n++);
}

setInterval( function() { countUp(10); }, 1000);

如果我将变量移到函数之外并增加该值,它将起作用。但是,我希望能够在调用函数时将数字设置为任何值countUp。上面的代码只是保持记录10

编辑:

有没有办法将参数传递给该函数并使其与 setInterval 一起工作而无需声明全局变量?

4

1 回答 1

3

您需要在函数的封闭范围内增加一个变量:

var n = 10;

function countUp() {
    console.log(n++);
}

setInterval(countUp, 1000);

更新:这是一个不涉及全局变量的策略:

function countUp(start) {
    return function() {
        console.log(start++)
    }
}
setInterval(countUp(10), 1000);

正如我所指出的,计数器只需要在封闭范围内,而不是全局范围内。所以将它传递给一个可以在闭包中引用它的函数在这里可以正常工作。

于 2012-12-03T00:14:11.777 回答