Par souci de simplicité, j'ai inclus un script qui appelle dynamiquement une fonction par son nom:nommant Dynamiquement et la mise en œuvre du corps d'une fonction javascript
var foo = "hello";
var bar = "world";
var function_name = "say_" + foo + bar;
// Since its name is being dynamically generated, always ensure your function actually exists
if (typeof(window[function_name]) === "function")
{
window[function_name](" World!");
}
else
{
throw("Error. Function " + function_name + " does not exist.");
}
function say_helloworld(the_word)
{
alert("Hello " + the_word);
}
Mais le code de la fonction say_helloworld
est écrit dans un mode statique. Je voudrais quelque chose comme:
var function_implementation = 'function say_'+foo+bar+
'(the_world){alert("Hello " + the_world);}';
eval(function_implementation);
mais sans utiliser eval(). Il y a une approche encore plus laide: faire un appel AJAX pour obtenir la fonction.
Pouvez-vous voir une meilleure approche?
excellente réponse, merci! –