JS - 函数取双结果

JS - function take a double result

这个脚本有问题:

<script>
var start = 400;
var interval = 40;

function counter() {
return start -= interval;
}

var stop = setInterval (
    function add() {
    if (counter() > 0)
    document.getElementById("test").innerHTML = counter();
    else
    clearInterval(stop);
    },1000);
</script>

<button onclick="clearInterval(stop)">stop!</button>
<br/>
        <p id="test">On marks! Start!</p>

脚本从 400 倒数到 0,变量间隔 = 40。脚本运行时减去 80 而不是 40。结果是双倍的,我不知道为什么。

你能帮帮我吗?

你调用了 counter() 两次,每次减去 40,只调用一次

var start = 400;
var interval = 40;

function counter() {
    return start -= interval;
}

var stop = setInterval(function() {
    var count = counter();
    if (count > 0) {
        document.getElementById("test").innerHTML = count;
    } else {
        clearInterval(stop);
    }
}, 1000);