Al utilizar setTimeout
, usted tiene que poner el código que desea ejecutar en una cadena:setTimeout - cómo evitar el uso de una cadena para la devolución de llamada?
setTimeout('alert("foobar!");', 1000);
Sin embargo, quiero ejecutar una función a la que tengo una referencia en una variable. Quiero ser capaz de hacer esto:
var myGreatFunction = function() { alert("foobar!"); };
// ...
setTimeout('myGreatFunction();', 1000);
(. Aunque en la vida real, la alerta es un poco más largo de código y myGreatFunction
se pasa alrededor como un parámetro para otras funciones, dentro de los cuales se llama el setTimeout
)
Por supuesto, cuando se dispara el tiempo de espera, myGreatFunction
no es una función reconocida por lo que no se ejecuta.
deseo Javascript vamos a hacer esto, pero no es así:
setTimeout(function() { myGreatFunction(); }, 1000);
¿Hay una buena manera alrededor de esto?
"Al utilizar setTimeout, usted tiene que poner el código que desea ejecutar en una cadena" Usted seguramente no ... de hecho, se _should Not_. –
@Tomalak - sí, tienes razón. Vea el comentario sobre la respuesta de Kirtan ...:/ – teedyay
En realidad lo vi; solo quería ser explícito aquí por el bien de cualquier otra persona que pueda ver la pregunta :) –