• ベストアンサー

即時関数で

即時関数(無名関数)でsetTimeoutを繰り返す方法はありますでしょうか?setIntervalではなく。 var testDo=function(){ setTimeout(function(){ 何かの処理 testDo(); //★実行されない },600); }(); //即時関数 即時なのでtestDoという名前も不要だと思いますが。。。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.1

(function(){ 何らかの処理(); setTimeout(arguments.callee, 600); })(); 参考 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions_and_function_scope/arguments/callee

3466349
質問者

お礼

ご回答ありがとうございます。 助かりました。

その他の回答 (1)

  • think49
  • ベストアンサー率59% (285/482)
回答No.2

どうしても無名関数でなければなりませんか? 名前付き関数にすれば Strict Mode で実行できるのですが…。 (function sample () {  'use strict';  // 処理  setTimeout(sample, 600); }()); # Re: 3466349さん

3466349
質問者

お礼

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

関連するQ&A

専門家に質問してみよう