在javascript中设置Interval

时间:2016-12-09 14:03:41

标签: javascript setinterval

我是javascript初学者。 在javascript中有奇怪的东西,我感到愚蠢

//First statement
var myVar = "Hello";
function hello() {
    document.getElementById("demo").innerHTML = myVar;
}

//second statement
var myVar = setInterval(myTimer, 1000);
function myTimer() {
    document.getElementById("demo").innerHTML = new Date().toLocaleTimeString();
}

为什么第二个函数在没有调用的情况下工作? 不像第一个?这给我带来了很多问题!

2 个答案:

答案 0 :(得分:2)

  

为什么第二个函数在没有调用的情况下工作?不像第一个?

您正在将函数myTimer传递给setIntervalsetInterval每1000毫秒调用一次函数。因此,虽然不是直接调用该函数,但它仍然被调用(setInterval)。 setInterval的唯一目的是调用您传递给它的函数作为参数。

相反,你没有对hello做任何事情。你既没有直接调用它,也没有将它传递给任何其他可以调用它的函数。

答案 1 :(得分:1)

从我可以从评论中收集到的内容,您似乎对myTimer()函数的工作原理感到困惑。这是一个简短的解释:

在这一行

var myVar = setInterval(myTimer, 1000);

您正在调用setInterval()函数。该函数需要2个参数,您已定义了这些参数。第一个是功能;要执行的代码。第二个是每次执行所述函数之间的延迟。

在下一行中,您已将变量myTimer声明为使用setInterval执行的函数。

有关详细信息,请查看MDN documentation。具体来说,它说:

  

var intervalID = window.setInterval(func, delay)

参数定义为:

  

func :每延迟毫秒执行一次的函数。

  

延迟:时间,以毫秒(千分之一秒)为单位,计时器应在执行指定函数或代码之间延迟。