J'ai une fonction et son contenu sous forme de chaîne.exécution de fonctions anonymes créées avec JavaScript eval()
var funcStr = "function() { alert('hello'); }";
Maintenant, je fais un eval() pour obtenir réellement cette fonction dans une variable.
var func = eval(funcStr);
Si je me souviens bien, dans Chrome et Opera, il suffit d'appeler
func();
argué du fait que la fonction et l'alerte a été affichée.
Mais, dans d'autres navigateurs, ce n'était pas le cas. rien ne s'est passé.
Je ne veux pas d'argument quant à la méthode correcte, mais comment puis-je faire cela? Je veux pouvoir appeler variable(); pour exécuter la fonction stockée dans cette variable.
Je me demande pourquoi vous avez besoin d'une fonction anonyme représentée comme un littéral de chaîne, par opposition à simplement avoir une fonction nommée? –
FYI: Je définis mon propre script pour mon application web. J'écris un interpréteur et ai besoin de construire des fonctions de JS à la volée et ensuite créer des fonctions exécutables réelles hors d'elles. –
pourquoi n'écririez-vous pas l'interprète de la manière traditionnelle? – Breton