JavaScript の setTimeout がすぐ実行される!
結論から言えば引数つけるな、ということ。
setTimeout(this.hoge, 1000);
は正しく1秒後にhoge()が実行されるが、
setTimeout(this.hoge("aaa"), 1000);
は即時実行されてしまう。
なんでかは知らん。
んで、引数つけたいなら、3番目以降に渡せばよい。
setTimeout(this.hoge, 1000, "aaa");
が、ブラウザによっては対応していないとのことなので注意が必要。
(ネット上だとIEでは対応してない、とか書いている人がいたが、まぁもうIE使わんだろう)
トリッキーな書き方として無名関数の中で呼び出す、という作戦はある。
setTimeout(function(){hoge("aaa")}, 1000);
まぁ見慣れればあれだけど、初見だと何してんの?って感じ。
以上!