作成したこのカウンターがありますが、それを永久に実行したいのですが、それは本当に簡単です。ここで何が間違っていますか?
function timer() {
console.log("timer!")
}
window.setInterval(timer(), 1000)
作成したこのカウンターがありますが、それを永久に実行したいのですが、それは本当に簡単です。ここで何が間違っていますか?
function timer() {
console.log("timer!")
}
window.setInterval(timer(), 1000)
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
は参照として渡され、呼び出し元の関数のどこかで実行されます。これは、他の言語の関数へのポインタと同じです。
よくある間違いは、w3schoolsで示されているように、これら 2 つの関数を使用することです。これにより、 が暗黙的に呼び出されeval
ます。