setIntervalcallback只运行一次
我有这个计数器,但是我希望它永远运行,这很简单,我在这里做错了什么?
function timer() { console.log("timer!") } window.setInterval(timer(), 1000)
您使用函数调用而不是函数引用作为setInterval的第一个参数。 像这样做:
function timer() { console.log("timer!"); } window.setInterval(timer, 1000);
或更短(但是,当function变得更大也不太可读):
window.setInterval( function() { console.log("timer!"); }, 1000)
setInterval
和setTimeout
必须与callback一起使用,如:
setInterval(timer, 1000);
或未命名的function:
setInterval( function() { console.log("timer!"); }, 1000 );
为什么你的代码不工作 – 当你将一个函数作为parameter passing给另一个带括号的函数,例如doSomething ( someFunc() )
你正在传递函数的结果。
当函数作为对象传递时,例如doSomething ( someFunc )
你传递一个callback函数。 这种方式someFunc
作为参考传递,它在调用函数的某处执行。 这与指向其他语言的函数的指针是一样的。
一个常见的错误是使用w3schools中显示的这两个函数。 这使得对eval
的隐式调用。