重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

即時関数(無名関数)でsetTimeoutを繰り返す方法はありますでしょうか?setIntervalではなく。


var testDo=function(){
setTimeout(function(){
何かの処理
testDo(); //★実行されない
},600);
}(); //即時関数

即時なのでtestDoという名前も不要だと思いますが。。。


よろしくお願いします。

A 回答 (2件)

(function(){


何らかの処理();
setTimeout(arguments.callee, 600);
})();

参考
https://developer.mozilla.org/ja/docs/Web/JavaSc …
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。

助かりました。

お礼日時:2014/05/29 23:26

どうしても無名関数でなければなりませんか?


名前付き関数にすれば Strict Mode で実行できるのですが…。

(function sample () {
 'use strict';
 // 処理
 setTimeout(sample, 600);
}());

# Re: 3466349さん
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

Strict Modeは初めて聞きましたが
簡単に調べると厳格なエラーチェックのようですが、
これを使うとsetTimeoutに何かメリットがあるのでしょうか?

お礼日時:2014/05/29 23:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!