[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()を使用する際、こちらをわかっていると意図通りの動作が期待できますね!
ではでは。