[javascript] setTimeout() に引数として変数を与える方法
📅 November 26, 2013
•⏱️1 min read
javascript(というかjquery) をいじっていたところ、ある関数を呼び出して指定時間後に 別の関数を呼び出したいことがあり、setTimeout()を使用することにしました。 処理の都合上、setTimeout()に引数として変数を指定したかったのですが、
setTimeout (関数名, 時間)
setTimeout()は、引数に関数を指定するので、第一引数に変数をあててもうまくいきません。 setTimeout(F(変数),時間) みたいに関数F()にさらに引数を指定してもダメです。
Google先生にお伺いしてこちらのサイトを参考にしました。 引数有りのsetTimeout()について
setTimeout (Fn, sec, arg1, arg2, …);
なんと第三引数以降に変数いれればよい! ですが、この書き方は、IEではエラーでるらしいので IE考慮版らしい以下の書き方を採用しました。
setTimeout() に引数として変数を与える方法
関数hogehoge の中で引数として arg を渡して setTimeout() を実行したい。function hogehoge(arg) { setTimeout(function(){ piyopiyo(arg); },200); } function piyopiyo(arg) { // arg を使用して指定時間後に実行したい処理 }
このように、別の関数(↑では、piyopiyo)を噛ませるとイケルみたい。
幸せになれました~
★余談 JavaScript を学ぶ際に一番重要なのに、誤解されがちな setTimeout 系の概念
setTimeout()を使用する際、こちらをわかっていると意図通りの動作が期待できますね!
ではでは。