com*_*ile 63 javascript callback setinterval
我有这个柜台,但是我希望它能永远运行,这很简单,我在这里做错了什么?
function timer() {
console.log("timer!")
}
window.setInterval(timer(), 1000)
Run Code Online (Sandbox Code Playgroud)
Koe*_*ers 103
您使用函数调用而不是函数引用作为setInterval的第一个参数.像这样做:
function timer() {
console.log("timer!");
}
window.setInterval(timer, 1000);
Run Code Online (Sandbox Code Playgroud)
或者更短(但是当函数变得更大而且可读性更低时):
window.setInterval( function() {
console.log("timer!");
}, 1000)
Run Code Online (Sandbox Code Playgroud)
setInterval并且setTimeout 必须与回调一起使用,例如:
setInterval(timer, 1000);
Run Code Online (Sandbox Code Playgroud)
或未命名的功能:
setInterval( function() { console.log("timer!"); }, 1000 );
Run Code Online (Sandbox Code Playgroud)
为什么你的代码不起作用 - 当你将一个函数作为参数传递给另一个带括号的函数时,例如doSomething ( someFunc() )你传递函数的结果.
当函数作为对象传递时,例如,doSomething ( someFunc )您正在传递回调.这种方式someFunc作为引用传递,并在调用函数中的某处执行.这与其他语言中的函数指针相同.
一个常见的错误是使用w3schools所示的这两个功能.这使得隐式调用eval.
| 归档时间: |
|
| 查看次数: |
42926 次 |
| 最近记录: |