Javascript 无返回值函数

Javascript 无返回值函数,javascript,function,return,return-value,Javascript,Function,Return,Return Value,在javascript中,为什么这段代码可以工作 var myVar=setInterval( function(){ myTimer() },1000 ); function myTimer() { var d=new Date(); var t=d.toLocaleTimeString(); document.getElementById("demo").innerHTML=t; //displays time dpcument.getEle

在javascript中,为什么这段代码可以工作

var myVar=setInterval(
   function(){
      myTimer()
   },1000
);

function myTimer()
{
   var d=new Date();
   var t=d.toLocaleTimeString();
   document.getElementById("demo").innerHTML=t; //displays time
   dpcument.getElementById("demo2").innerHTML = myVar; //displays 1
}
即使我没有从函数返回任何内容,为什么myVar仍保留值1?

myVar保留调用setInterval的返回值,而不管您是否声明了匿名函数。

setInterval返回的是值,而不是您的函数。它返回一个intervalID,因此您可以使用clearTimeout清除它。

myVar将获取对setInterval的调用的返回值,而不是您正在传递的匿名函数的返回值,也不是来自myTimer的返回值

以下是它的工作原理:

调用setInterval,它返回一个计时器id。将引用传递给匿名函数。 当间隔到期时,将在内部调用匿名函数。它返回未定义的值,但这并不重要,因为它是在内部调用的,并且从不使用该返回值。 每次调用匿名函数时,它都会调用myTimer,myTimer也会返回undefined。这在匿名函数中从未使用过。
对于那些被否决的人:我想知道我的第一句话有什么问题。