问答详情
源自:8-3 计时器setInterval()

关于页面每秒刷新时间的问题,两种代码有什么区别?

我尝试每隔1秒显示一次时间,这样就可以:

window.onload=function(){
//定时器每秒调用一次fnDate()
   setInterval(function(){fnDate();},1000);
};
function fnDate(){
   var D=new Date();
   alert(D);
}

这样就不行:

window.onload=function(){
//定时器每秒调用一次fnDate()
   setInterval(fnDate(),1000);
};
function fnDate(){
   var D=new Date();
   alert(D);
}


提问者:tanglj22 2016-04-26 15:33

个回答

  • RossRoma
    2016-04-26 16:38:59
    已采纳

    两种写法别分是:
    A: setInterval("fnDate()",1000);
    B: setInterval(fnDate,1000);
    注意 "" 与 () 在什么时候使用,什么时候不使用。

  • kuban
    2016-04-26 16:39:50

    setInterval(fnDate(),1000);改为setInterval(fnDate,1000);setInterval("fnDate()",1000);或者就达到你要的效果了

    下面说说原因

    setInterval(要调用的函数或要执行的代码串,1000);

    fnDate()是直接执行,如果有返回值,相当于返回值放到setInterval的第一个参数位置,所以人家执行一次就不动了。

    fnDate是要调用的函数,放到第一个参数位置到时间了再执行,所以一直执行。

    "fnDate()"是代码串,每到时间解析一次,解析成fnDate(),然后达到一直执行

    如有错误,望指正