Exécuter une fonction à partir de son nom en variable chaîne [JS] - HTML/CSS - Programmation
Marsh Posté le 07-03-2007 à 10:08:25
function fonctionamoi() {
alert("blabla" );
}
var nomdelafonction = "fonctionamoi";
eval(nomdelafonction+"()" );
Marsh Posté le 07-03-2007 à 15:30:03
gatsu35 a écrit : function fonctionamoi() { |
Heuu ouais ou plus simplement
Code :
|
non parce que je rappelle qu'eval say le mal
Marsh Posté le 07-03-2007 à 17:07:46
nickel merci !
J'avoue que j'ai pas trouvé les bons mots-clés pour avoir cette astuce sur google...
Marsh Posté le 07-03-2007 à 17:35:24
Le MDC est une très bonne base de départ quand tu cherches ce genre de chose:
http://developer.mozilla.org/en/do [...] _1.5_Guide
Tu peux commencer par lire tout le chapitre sur l'objet function
Marsh Posté le 07-03-2007 à 18:08:25
anapajari a écrit : Le MDC est une très bonne base de départ quand tu cherches ce genre de chose: |
Oui enfin là c'est surtout savoir que les objets sont aussi des hashes et que tout ce qui est déclaré en global est en fait un attribut de l'objet window.
Ensuite seulement est nécessaire la connaissance du fait qu'en JS une fonction est un objet comme un autre et peut donc être manipulée comme on le veut, son nom n'étant finalement qu'accessoire, une sorte de raccourci réflexif
Marsh Posté le 08-03-2007 à 08:50:02
Pas d'accord ( Pas sur le fond technique mais sur le forme "la doc" lui aurait servi à rien )
Généralement pour en arriver à faire ce genre d'ignominie, c'est qu'il y a une merde dans la conception. Et en lisant la doc il aurait vu tout les autres méthodes pour déclarer une fonction ( var a = function , var a = new Function , ...) ce qui aurait pu lui donner de bonnes idées.
Marsh Posté le 08-03-2007 à 10:53:39
anapajari a écrit : Pas d'accord ( Pas sur le fond technique mais sur le forme "la doc" lui aurait servi à rien ) |
Oui heu en l'occurence la seconde c'est de la merde en barre hein
Et si on veut vraiment savoir tout ce qu'on peut faire en JS, imho il n'y a qu'un moyen: Javascript The Definitive Guide 5e édition
Marsh Posté le 08-03-2007 à 11:29:21
masklinn a écrit : Oui heu en l'occurence la seconde c'est de la merde en barre hein |
ça dépend, ça peut être utile d'avoir une fonction qu'est évaluée à chaque appel
Marsh Posté le 08-03-2007 à 12:12:09
anapajari a écrit : ça dépend, ça peut être utile d'avoir une fonction qu'est évaluée à chaque appel |
Là elle est pas évaluée à chaque appel elle est générée à chaque appel, et tu peux avoir la même chose en plus rapide avec une fonction anonyme normale
Marsh Posté le 08-03-2007 à 13:22:00
masklinn a écrit : Là elle est pas évaluée à chaque appel elle est générée à chaque appel, et tu peux avoir la même chose en plus rapide avec une fonction anonyme normale |
Tu chipottes mais tu as a raison puisque c'est l'objet Function qui est evalué et pas la fonction elle-même.
(Faut vraiment faire attention au choix des mots avec toi )
Marsh Posté le 09-03-2007 à 08:44:45
nan pas une polémique, sur ce forum ça s'appele une discussion avec Masklinn
Marsh Posté le 09-03-2007 à 19:20:29
J'vous merde tous
Marsh Posté le 07-03-2007 à 09:27:48
Bonjour,
Je n'ai pas trouvé l'info sur Google alors je me permets de poser ma question ici : est-il possible d'exécuter une fonction JavaScript à partir de son nom dans une chaîne de caractères ?
Merci !