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