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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-18 18:08:11593ブラウズ

Why Does My `setTimeout` Function Run Immediately?

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

setTimeout を使用すると、指定された待ち時間が無視され、即座に実行する関数。この動作は、使用される構文における一般的な誤解から発生します。

落とし穴:

以下のコード スニペットは、この問題を示しています:

setTimeout(testfunction(), 2000);

説明:

コードでは、括弧を使用して testfunction() がすぐに呼び出されます。これは、setTimeout が、即座に実行される te​​stfunction() の結果を待機するようにスケジュールされていることを意味します。

解決策:

setTimeout が目的の結果を待機するようにするには関数を実行する前に、代わりに次の構文を使用してください:

setTimeout(testFunction, 2000);

がないことに注意してください。 testFunction の後の括弧。かっこを省略すると、関数の呼び出し結果ではなく、関数自体への参照が渡されます。

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

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