我一直工作在下面的代码,但无法弄清楚,为什么在1秒钟后做我的函数参数“输入”更改为未定义?Javascript setInterval() - 为什么我的“输入”参数更改为undefined?
下面是代码:
<div id="new_time"></div>
<div id='input'></div>
<script>
var mins = 0;
var hrs = 0;
var secs = 0;
var test = 0;
function time_calc(input)
{
document.getElementById('new_time').innerHTML = secs++;
document.getElementById('input').innerHTML = input;
if (secs>59)
{
mins += 1;
secs = 0;
if (mins>59)
{
hrs += 1;
mins = 0;
}
}
while (secs == input)
{
clearInterval(secs_inc);
}
document.getElementById('new_time').innerHTML = hrs + ":" + mins + ":" + secs;
}
time_calc(20);
var secs_inc = setInterval(time_calc, 1000);
</script>
这工作,但再次我有另外一个小问题: 使用匿名函数时和预期不起作用使用这个时候为什么没有给出正确的输出: 的setInterval(time_calc(20),1000); 两个都不一样吗? – saadi123
不一样。我在答案的底部添加了一个解释。 – GolezTrol