计时器问题
var attime;
function onclock(){
var time=new Date();
attime=time.getHours()+"时"+time.getMinutes()+"分"+time.getSeconds()+"秒" ;
document.getElementById("clock").value = attime;
}
var int=setInterval(onclock(),1000);
为什么一直不停闪烁!
var attime;
function onclock(){
var time=new Date();
attime=time.getHours()+"时"+time.getMinutes()+"分"+time.getSeconds()+"秒" ;
document.getElementById("clock").value = attime;
}
var int=setInterval(onclock(),1000);
为什么一直不停闪烁!
2016-03-25
用错了,应该这样写setInterval(onclock,1000);
不能这样写:setInterval(onclock(),1000);这样写根本就没把onclock函数传给setInterval,而是执行了一遍onclock,将执行的结果传给setInterval,
举个栗子:
var attime;
function abc() {
return function onclock() {
var time = new Date();
attime = time.getHours() + "时" + time.getMinutes() + "分" + time.getSeconds() + "秒";
document.getElementById("clock").value = attime;
}
}
var int = setInterval(abc(), 1000);
从结果可看出是先执行bac(),得到返回值onclock,然后在执行setInterval.........
onclock是函数本身,onclock();是执行函数的语句,不能混淆。。。。
所以参数是函数的时候不要顺手加括号
最后,解释一下不停闪烁的原因,只能说是被穆课网站的缓存影响了
举报