在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
,即使我没有从函数返回任何内容?
答案 0 :(得分:5)
setInterval
返回一个值,而不是您的函数。它返回intervalID
,因此您可以使用clearTimeout
清除它。
答案 1 :(得分:2)
myVar
保存对setInterval
的调用的返回值,而不管您是否声明了匿名函数。
答案 2 :(得分:0)
myVar
会将调用的返回值设为setInterval
,而不是来自myTimer
的匿名函数。
以下是它的工作原理:
setInterval
,它会返回一个计时器ID。你传递了对匿名函数的引用。myTimer
,它也返回undefined。这永远不会在您的匿名函数中使用。