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