为了账号安全,请及时绑定邮箱和手机立即绑定

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

我尝试每隔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);
}


正在回答

2 回答

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

0 回复 有任何疑惑可以回复我~
#1

tanglj22 提问者

非常感谢!
2016-04-26 回复 有任何疑惑可以回复我~
#2

tanglj22 提问者

是这个细节~我还以为和闭包什么的扯上关系了
2016-04-26 回复 有任何疑惑可以回复我~

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

下面说说原因

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

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

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

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

如有错误,望指正

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信