2012年6月28日木曜日

JavaScriptのsetTimeout()で指定する関数の引数に値を渡したいとき

JavaScriptで定期的に処理を行わせたいときに、setTimeout()またはsetInterval()を使う事があります。
// 1秒間隔でdoSomething()を実行
setInterval(doSomething, 1000);
その第1引数には処理を定義した関数を与えるのですが、その関数の引数に値を渡したい時は以下のように呼びます。
setInterval(doSomething, 1000, value);
setInterval(doSomething, 1000, value1, value2, value3);
あるいは
setInterval("doSomething('" + value + "')", 1000);
文字列で渡すパターンは途中にシングルクォートを入れるのがミソらしいんだが、具体的な理由は不明(´・ω・`)
ちなみに、MOZILLA DEVELOPER NETWORKのwindow.setTimeoutwindow.setIntervalに関数の説明が書いてあります。ECMA262には書いていませんでした。ということは、ECMAで定めた関数じゃないんですかね。

その他参考サイト:
setTimeoutで引数が入った関数を呼ぶ

0 件のコメント:

コメントを投稿