Skip to content

[javascript] setTimeout() に引数として変数を与える方法

  • tips

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

ではでは。

← PrevNext →