ホームページ >ウェブフロントエンド >jsチュートリアル >「setTimeout」が関数をすぐに実行するのはなぜですか?

「setTimeout」が関数をすぐに実行するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-22 06:38:13908ブラウズ

Why Does `setTimeout` Execute My Function Immediately?

setTimeout() を使用して関数がすぐに実行されるのはなぜですか?

JavaScript で setTimeout を利用すると、指定された遅延を無視して関数が即座に実行されるという問題が発生する可能性があります。 。この異常は、一般的な落とし穴に起因する可能性があります。

この問題は、次のように setTimeout 引数内で関数を呼び出すときに発生します。

setTimeout(testfunction(), 2000);

この構文はすぐに testfunction() を呼び出します。 setTimeout は、指定された遅延の後にその関数呼び出しの 戻り値 が実行されるようにスケジュールします。その結果、関数は即座に実行され、タイマーは冗長になります。

この問題を解決するには、関数を呼び出さずに、関数自体を引数として渡す必要があります

setTimeout(testFunction, 2000);

testFunction の後に括弧がないことに注意してください。このアプローチにより、遅延の経過後に関数の実行が確実にスケジュールされ、意図したとおりに動作できるようになります。

以上が「setTimeout」が関数をすぐに実行するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。