При использовании setTimeout
вы должны поместить код, который вы хотите выполнить, в строку:
setTimeout('alert("foobar!");', 1000);
Однако я хочу выполнить функцию, на которую у меня есть ссылка в переменной. Я хочу быть в состоянии сделать это:
var myGreatFunction = function() { alert("foobar!"); };
// ...
setTimeout('myGreatFunction();', 1000);
(Хотя в реальной жизни предупреждение является более длинным фрагментом кода, и myGreatFunction
передается как параметр другим функциям, в которых вызывается setTimeout
.)
Конечно, когда срабатывает тайм-аут, myGreatFunction
не является распознанной функцией, поэтому она не выполняется.
Я бы хотел, чтобы JavaScript позволил мне это сделать, но это не так:
setTimeout(function() { myGreatFunction(); }, 1000);
Есть ли хороший способ обойти это?