Tengo una función y su contenido como una cadena.ejecutando funciones anónimas creadas usando JavaScript eval()
var funcStr = "function() { alert('hello'); }";
Ahora realizo una evaluación() para obtener realmente esa función en una variable.
var func = eval(funcStr);
Si no recuerdo mal, en Chrome y Opera, simplemente llamando
func();
invoca esa función y se muestra la alerta.
Pero, en otros navegadores no era el caso. no pasó nada.
No quiero una discusión sobre cuál es el método correcto, pero ¿cómo puedo hacer esto? Quiero poder llamar a variable(); para ejecutar la función almacenada en esa variable.
Me pregunto por qué necesita una función anónima representada como una cadena literal, en lugar de simplemente tener una función con nombre? –
FYI: Estoy definiendo mi propio script para mi aplicación web. Estoy escribiendo un intérprete y necesito construir funciones JS sobre la marcha y luego crear funciones ejecutables reales a partir de ellas. –
¿por qué no escribirías el intérprete de la manera tradicional? – Breton