setinterval
一直有个疑惑,在定时器上调用某个方法时,加括号和不加括号有什么区别。今天做了个实验,发现,不加括号定时器会每秒执行一次,加了括号只会执行一次,在一些浏览器上会报错,如IE,但一样会正常执行一次。
这样写浏览器会正常运行,每秒打印一次。
但如果加了个括号
运行结果就只有一次
并且在IE浏览器会报错,但依然会执行一次
并且,如果全局范围内没有sw这个函数,只有变量的话,定时器不会执行。
最后,我得出一个结论,定时器默认调用的是函数,可以把方法写在里面,setInterval(function(),1000)。也可以写在外面,如我上面的例子。如果写在外面,调用的时候不要加括号。如果加括号定时器只会调用一次。我想,加括号应该会变成自调函数了。不加括号是这样的setInterval(function(),1000),加括号就变成这样了:setInterval(function()(),1000);应该是这个原因导致定时器只执行一次的?
只以此为例,猜想其他的方法是不是也一样?如animate()。
如果我的理解错误,欢迎指出。谢谢!
文章最后发布于: 2018-01-20 11:43:46
相关阅读
clearInterval() 方法与setInterval() 方法【2018.11.
HTML DOM clearInterval() 方法 定义和用法 clearInterval() 方法可取消由 setInterval() 设置的 timeout。 clearInterval()
我是想用canvas实现一个进度条,用到这个定时器setInterval,但是调用的函数只执行了一次。定义:setInterval() 方法可按照指定的周期(
timerFun() function timerFun(){ //要执行的操作 var timer=setTimeout(function(){ timerFun() clearTimeout(timer) },2000)
setInterval()这个方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。 setInterval(x(),y); x()代表你调用的方法, y是每隔多长时间
javascriptwindow对象setInterval()事件
<!DOCTYPE html> <html> <head> <title>dom1.html</title> <meta http-equiv="keywords" content="keyword1,keyword