setTimeout による JavaScript スクリプトの実行の遅延
JavaScript の setTimeout メソッドを使用すると、指定した遅延の後にスクリプトを実行できます。 jQuery の late() や wait() とは異なり、setTimeout はコールバック関数を引数として直接受け取り、遅延をミリ秒単位で設定します。
setTimeout による非同期実行
関数を引数として setTimeout に渡すと、指定された遅延後に実行されるようにスケジュールされます。この非同期動作により、スクリプトの実行がブロックされず、プログラムの他の部分が続行できるようになります。
遅延関数へのパラメータの受け渡し
パラメータを渡す必要がある場合遅延関数には、名前付き関数または匿名関数を使用できます。ただし、匿名関数を使用する場合は、変数スコープの問題に注意してください。
現在渡されたパラメーターが遅延関数のスコープ内に確実に保持されるようにするには、目的のパラメーターを受け入れる新しい関数を返す関数を作成します。これによりパラメータ値がカプセル化され、遅延関数が後でそれらの値にアクセスできるようになります。
変数スコープの例
<code class="js">var a = "world"; setTimeout(alert("Hello " + a), 2000); // Calls alert immediately</code>
匿名関数によるパラメータのカプセル化
<code class="js">var a = "world"; setTimeout(function() { alert("Hello " + a); }, 2000); // Calls alert after 2 seconds with 'Hello world'</code>
関数を返す関数でパラメータをカプセル化する
<code class="js">function callback(param) { return function() { alert("Hello " + param); }; } var a = "world"; setTimeout(callback(a), 2000); // Calls alert after 2 seconds with 'Hello world'</code>
これにより、遅延関数にパラメータを渡し、パラメータを確実に保持できるようになります。その間に変数スコープに変更が加えられたとしても、正しい値が得られます。
以上がsetTimeout を使用して関数にパラメータを遅延して渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。