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

为什么setInterval回调只执行一次?

为什么setInterval回调只执行一次?

ABOUTYOU 2019-07-04 17:34:15
为什么setInterval回调只执行一次?我有一个我做的计数器,但我希望它永远运行,它真的很简单,我在这里做错了什么?function timer() {   console.log("timer!")}window.setInterval(timer(), 1000)
查看完整描述

3 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

您使用函数调用而不是函数引用作为setInterval的第一个参数。这样做:

function timer() {
  console.log("timer!");}window.setInterval(timer, 1000);

或者更短(但当函数变得更大时也更难读):

window.setInterval( function() {
  console.log("timer!");}, 1000)


查看完整回答
反对 回复 2019-07-04
?
森林海

TA贡献2011条经验 获得超2个赞

setIntervalsetTimeout 与回调一起使用,例如:

setInterval(timer, 1000);

或未命名的函数:

setInterval( function() { console.log("timer!"); }, 1000 );

为什么您的代码不能工作-当您把一个函数作为参数传递给另一个带有括号的函数。doSomething ( someFunc() )您正在传递函数的结果。

当函数作为对象传递时。doSomething ( someFunc )你正在传递一个回调。这边请someFunc作为引用传递,并在调用函数的某个位置执行。这与其他语言中指向函数的指针相同。

一个常见的错误是使用这两个函数,如W3学校..这将隐式调用eval.


查看完整回答
反对 回复 2019-07-04
  • 3 回答
  • 0 关注
  • 669 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信