Javascript 无返回值函数
在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
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。这在匿名函数中从未使用过。
对于那些被否决的人:我想知道我的第一句话有什么问题。