Voici le problème – je connais la fonction par nom (et cette fonction a déjà été chargée sous forme d'un script externe), mais je n'ai pas d'objet fonction réel pour appeler. Normalement, j'appellerais eval (function_name + "(arg1, arg2)"), mais dans mon cas, je dois y transmettre un objet, pas une chaîne. Exemple simple:
var div = document.getElementById('myDiv') var func = "function_name" -- this function expects a DOM element passed, not id
Comment exécuter cette fonction?
Merci! Andrey
Vous devriez pouvoir obtenir l'objet fonction de la window
niveau supérieur. Par exemple
var name = "function_name"; var func = window[name]; func( blah );
Ne jamais utiliser eval, c'est mauvais (voir une seule différence de lettre) Vous pouvez tout simplement faire:
var div = document.getElementById('myDiv'); var result = window[function_name](div);
Ceci est possible car les fonctions sont des objets de première classe en javascript, afin que vous puissiez les accéder comme vous le pouvez avec n'importe quelle autre variable. Notez que cela fonctionnera également pour les fonctions qui souhaitent des chaînes ou tout autre élément:
var result = window[another_function_name]("string1", [1, "an array"]);