を使用する場合setTimeout、実行するコードを文字列に入れる必要があります。
setTimeout('alert("foobar!");', 1000);
ただし、変数に参照がある関数を実行したいです。私はこれを行うことができるようにしたい:
var myGreatFunction = function() { alert("foobar!"); };
// ...
setTimeout('myGreatFunction();', 1000);
(実際には、アラートはより長いコードでありmyGreatFunction、パラメーターとして他の関数に渡され、その中でsetTimeoutが呼び出されます。)
もちろん、タイムアウトがトリガーmyGreatFunctionされると、認識された関数ではないため、実行されません。
JavaScriptでこれを実行できるようにしたいのですが、そうではありません:
setTimeout(function() { myGreatFunction(); }, 1000);
これを回避する良い方法はありますか?