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