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

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

我有一个我做的计数器,但我希望它永远运行,它真的很简单,我在这里做错了什么?

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


ABOUTYOU
浏览 670回答 3
3回答

阿波罗的战车

您使用函数调用而不是函数引用作为setInterval的第一个参数。这样做:function timer() {   console.log("timer!");}window.setInterval(timer, 1000);或者更短(但当函数变得更大时也更难读):window.setInterval( function() {   console.log("timer!");}, 1000)

森林海

setInterval和setTimeout 必与回调一起使用,例如:setInterval(timer, 1000);或未命名的函数:setInterval( function() { console.log("timer!"); }, 1000 );为什么您的代码不能工作-当您把一个函数作为参数传递给另一个带有括号的函数。doSomething ( someFunc() )您正在传递函数的结果。当函数作为对象传递时。doSomething ( someFunc )你正在传递一个回调。这边请someFunc作为引用传递,并在调用函数的某个位置执行。这与其他语言中指向函数的指针相同。一个常见的错误是使用这两个函数,如W3学校..这将隐式调用eval.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript