Quando si utilizza setTimeout
, è necessario inserire il codice che si desidera eseguire in una stringa:setTimeout - come evitare l'uso della stringa per la richiamata?
setTimeout('alert("foobar!");', 1000);
Tuttavia, voglio eseguire una funzione a cui ho un riferimento in una variabile. Voglio essere in grado di fare questo:
var myGreatFunction = function() { alert("foobar!"); };
// ...
setTimeout('myGreatFunction();', 1000);
(. Anche se nella vita reale, l'avviso è un po 'più lunghe di codice e myGreatFunction
viene passato in giro come parametro ad altre funzioni, entro il quale il setTimeout
è chiamato)
Naturalmente, quando il timeout si innesca, myGreatFunction
non è una funzione riconosciuta in modo che non viene eseguito.
vorrei javascript mi permetta di fare questo, ma non lo fa:
setTimeout(function() { myGreatFunction(); }, 1000);
C'è un bel modo intorno a questo?
"Quando si utilizza setTimeout, bisogna mettere il codice che si desidera eseguire in una stringa" Tu certamente non ... in effetti, è _should not_. –
@Tomalak - sì, hai ragione. Vedi il commento sulla risposta di Kirtan ...:/ – teedyay
In realtà l'ho visto; volevo solo essere esplicito qui per il bene di chiunque altro possa vedere la domanda :) –