// Dans le code, appel de : FonctionMain('UneFonction');
// qui me renvoi un alert de 'titi'
En Javascript, les fonctions sont des objets, donc tu peux passer directement la fonction:
function main(callback) { callback('titi'); }
function bidule(t) { alert(t); }
main(bidule);
Si tu a vraiment besoin que ce soit un *nom* de fonction, ça doit a priori être possible en interrogeant l'objet window, ie:
function main(callback_name) { var func = window[callback_name]; func('titi'); }
Mais là, je ne te garantie pas à 100%.
Machaon
"Francis Spiesser" a écrit dans le message de news:
Machaon vient de nous annoncer :
Bonjour à tous,
javascript permet-il l'utilisation de nom de fonction dynamique ?
Oui avec eval (mais c'est crade !)
FonctionMain(UneVariable) { eval(UneVariable+'('titi')'); //<== plus de problème ici }
Merci pour ta solution, c'est celle que j'avais fini par trouver. Mais pkoi c crade ?
Machaon
"Francis Spiesser" <fspiesser@despixelsetdeshommes.NIPUBNISOUMIS.net> a
écrit dans le message de news:
mn.ec017d76f9fe1f01.2378@despixelsetdeshommes.NIPUBNISOUMIS.net...
Machaon vient de nous annoncer :
Bonjour à tous,
javascript permet-il l'utilisation de nom de fonction dynamique ?
Oui avec eval (mais c'est crade !)
FonctionMain(UneVariable) {
eval(UneVariable+'('titi')'); //<== plus de problème ici
}
Merci pour ta solution, c'est celle que j'avais fini par trouver.
Mais pkoi c crade ?
Parce qu'exécuter du code généré à la volée, ça ne facilite ni le
débogage ni la relecture. Un code correctement pensé et structuré devrait (normalement...) pouvoir se passer de ce genre de rustines.
-- ______ Francis (enlever .NIPUBNISOUMIS) Il y a 10 sortes de personnes : celles qui comprennent le binaire et les autres
Machaon
"Francis Spiesser" a écrit dans le message de news:
Machaon a émis l'idée suivante :
Mais pkoi c crade ?
Parce qu'exécuter du code généré à la volée, ça ne facilite ni le débogage
ni la relecture. Un code correctement pensé et structuré devrait (normalement...) pouvoir se passer de ce genre de rustines.
Et est-ce qu'un code bien pensé et strucuturé peut se passer de fonction en appelant une autre dynamiquement ? Si non, comment puis-je ne pas utiliser eval() ?
;-) Machaon
"Francis Spiesser" <fspiesser@despixelsetdeshommes.NIPUBNISOUMIS.net> a
écrit dans le message de news:
mn.ec8c7d7639c14e81.2378@despixelsetdeshommes.NIPUBNISOUMIS.net...
Machaon a émis l'idée suivante :
Mais pkoi c crade ?
Parce qu'exécuter du code généré à la volée, ça ne facilite ni le débogage
ni la relecture.
Un code correctement pensé et structuré devrait (normalement...) pouvoir
se passer de ce genre de rustines.
Et est-ce qu'un code bien pensé et strucuturé peut se passer de fonction en
appelant une autre dynamiquement ?
Si non, comment puis-je ne pas utiliser eval() ?
"Francis Spiesser" a écrit dans le message de news:
Machaon a émis l'idée suivante :
Mais pkoi c crade ?
Parce qu'exécuter du code généré à la volée, ça ne facilite ni le débogage
ni la relecture. Un code correctement pensé et structuré devrait (normalement...) pouvoir se passer de ce genre de rustines.
Et est-ce qu'un code bien pensé et strucuturé peut se passer de fonction en appelant une autre dynamiquement ? Si non, comment puis-je ne pas utiliser eval() ?
;-) Machaon
Olivier Miakinen
Parce qu'exécuter du code généré à la volée, ça ne facilite ni le débogage ni la relecture. Un code correctement pensé et structuré devrait (normalement...) pouvoir se passer de ce genre de rustines.
Et est-ce qu'un code bien pensé et strucuturé peut se passer de fonction en appelant une autre dynamiquement ? Si non, comment puis-je ne pas utiliser eval() ?
switch (variable) { case valeur1 : fonction1(); break; case valeur2 : fonction2(); break; case valeur3 : fonction3(); break; default : fonctionD(); break; }
Parce qu'exécuter du code généré à la volée, ça ne facilite ni le débogage
ni la relecture.
Un code correctement pensé et structuré devrait (normalement...) pouvoir
se passer de ce genre de rustines.
Et est-ce qu'un code bien pensé et strucuturé peut se passer de fonction en
appelant une autre dynamiquement ?
Si non, comment puis-je ne pas utiliser eval() ?
switch (variable) {
case valeur1 :
fonction1();
break;
case valeur2 :
fonction2();
break;
case valeur3 :
fonction3();
break;
default :
fonctionD();
break;
}
Parce qu'exécuter du code généré à la volée, ça ne facilite ni le débogage ni la relecture. Un code correctement pensé et structuré devrait (normalement...) pouvoir se passer de ce genre de rustines.
Et est-ce qu'un code bien pensé et strucuturé peut se passer de fonction en appelant une autre dynamiquement ? Si non, comment puis-je ne pas utiliser eval() ?
switch (variable) { case valeur1 : fonction1(); break; case valeur2 : fonction2(); break; case valeur3 : fonction3(); break; default : fonctionD(); break; }
filh
Machaon wrote:
"Francis Spiesser" a écrit dans le message de news:
Machaon a émis l'idée suivante :
Mais pkoi c crade ?
Parce qu'exécuter du code généré à la volée, ça ne facilite ni le débogage
ni la relecture. Un code correctement pensé et structuré devrait (normalement...) pouvoir se passer de ce genre de rustines.
Et est-ce qu'un code bien pensé et strucuturé peut se passer de fonction en appelant une autre dynamiquement ? Si non, comment puis-je ne pas utiliser eval() ?
En précisant mieux ce que tu veux faire, si tu veux juste passer une fonction en argument, il n'y a pas de pb - surtout en javascript.
Sinon si tu tiens vraiment à avoir un nom, ben... tu fais une hashtable, où tu stocke ta fonction avec le nom qui te plait.
Mais grosso modo on n'a pas besoin d'éval.
FiLH
-- Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle. Roland Barthes. http://www.filh.org
Machaon <jpalayodan@e-cml.org> wrote:
"Francis Spiesser" <fspiesser@despixelsetdeshommes.NIPUBNISOUMIS.net> a
écrit dans le message de news:
mn.ec8c7d7639c14e81.2378@despixelsetdeshommes.NIPUBNISOUMIS.net...
Machaon a émis l'idée suivante :
Mais pkoi c crade ?
Parce qu'exécuter du code généré à la volée, ça ne facilite ni le débogage
ni la relecture.
Un code correctement pensé et structuré devrait (normalement...) pouvoir
se passer de ce genre de rustines.
Et est-ce qu'un code bien pensé et strucuturé peut se passer de fonction en
appelant une autre dynamiquement ?
Si non, comment puis-je ne pas utiliser eval() ?
En précisant mieux ce que tu veux faire, si tu veux juste passer une
fonction en argument, il n'y a pas de pb - surtout en javascript.
Sinon si tu tiens vraiment à avoir un nom, ben... tu fais une
hashtable, où tu stocke ta fonction avec le nom qui te plait.
Mais grosso modo on n'a pas besoin d'éval.
FiLH
--
Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire
une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle.
Roland Barthes.
http://www.filh.org
"Francis Spiesser" a écrit dans le message de news:
Machaon a émis l'idée suivante :
Mais pkoi c crade ?
Parce qu'exécuter du code généré à la volée, ça ne facilite ni le débogage
ni la relecture. Un code correctement pensé et structuré devrait (normalement...) pouvoir se passer de ce genre de rustines.
Et est-ce qu'un code bien pensé et strucuturé peut se passer de fonction en appelant une autre dynamiquement ? Si non, comment puis-je ne pas utiliser eval() ?
En précisant mieux ce que tu veux faire, si tu veux juste passer une fonction en argument, il n'y a pas de pb - surtout en javascript.
Sinon si tu tiens vraiment à avoir un nom, ben... tu fais une hashtable, où tu stocke ta fonction avec le nom qui te plait.
Mais grosso modo on n'a pas besoin d'éval.
FiLH
-- Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle. Roland Barthes. http://www.filh.org
Bruno Desthuilliers
"Francis Spiesser" a écrit dans le message de news:
Machaon vient de nous annoncer :
Bonjour à tous,
javascript permet-il l'utilisation de nom de fonction dynamique ?
Oui avec eval (mais c'est crade !)
FonctionMain(UneVariable) { eval(UneVariable+'('titi')'); //<== plus de problème ici }
Merci pour ta solution, c'est celle que j'avais fini par trouver.
Alors changes en. Tu peux regarder mon autre post pour deux façons d'aborder le problème (nb: après vérif, la seconde fonctionne - en tous cas sous mozilla).
Mais pkoi c crade ?
Difficile à mettre au point, difficile à maintenir, très vite difficile à comprendre, et potentiellement dangereux.
Dans une écrasante majorité de cas, quand tu utilises eval(), c'est que soit tu ne connais pas la fonctionnalité du langage permettant de s'en passer, soit qu'il y a un problème de conception. C'est en tous cas mon expérience avec Python, et pour le moment avec Javascript aussi.
"Francis Spiesser" <fspiesser@despixelsetdeshommes.NIPUBNISOUMIS.net> a
écrit dans le message de news:
mn.ec017d76f9fe1f01.2378@despixelsetdeshommes.NIPUBNISOUMIS.net...
Machaon vient de nous annoncer :
Bonjour à tous,
javascript permet-il l'utilisation de nom de fonction dynamique ?
Oui avec eval (mais c'est crade !)
FonctionMain(UneVariable) {
eval(UneVariable+'('titi')'); //<== plus de problème ici
}
Merci pour ta solution, c'est celle que j'avais fini par trouver.
Alors changes en. Tu peux regarder mon autre post pour deux façons
d'aborder le problème (nb: après vérif, la seconde fonctionne - en tous
cas sous mozilla).
Mais pkoi c crade ?
Difficile à mettre au point, difficile à maintenir, très vite difficile
à comprendre, et potentiellement dangereux.
Dans une écrasante majorité de cas, quand tu utilises eval(), c'est que
soit tu ne connais pas la fonctionnalité du langage permettant de s'en
passer, soit qu'il y a un problème de conception. C'est en tous cas mon
expérience avec Python, et pour le moment avec Javascript aussi.
"Francis Spiesser" a écrit dans le message de news:
Machaon vient de nous annoncer :
Bonjour à tous,
javascript permet-il l'utilisation de nom de fonction dynamique ?
Oui avec eval (mais c'est crade !)
FonctionMain(UneVariable) { eval(UneVariable+'('titi')'); //<== plus de problème ici }
Merci pour ta solution, c'est celle que j'avais fini par trouver.
Alors changes en. Tu peux regarder mon autre post pour deux façons d'aborder le problème (nb: après vérif, la seconde fonctionne - en tous cas sous mozilla).
Mais pkoi c crade ?
Difficile à mettre au point, difficile à maintenir, très vite difficile à comprendre, et potentiellement dangereux.
Dans une écrasante majorité de cas, quand tu utilises eval(), c'est que soit tu ne connais pas la fonctionnalité du langage permettant de s'en passer, soit qu'il y a un problème de conception. C'est en tous cas mon expérience avec Python, et pour le moment avec Javascript aussi.
filh
Olivier Miakinen <om+ wrote:
Parce qu'exécuter du code généré à la volée, ça ne facilite ni le débogage ni la relecture. Un code correctement pensé et structuré devrait (normalement...) pouvoir se passer de ce genre de rustines.
Et est-ce qu'un code bien pensé et strucuturé peut se passer de fonction en appelant une autre dynamiquement ? Si non, comment puis-je ne pas utiliser eval() ?
switch (variable) { case valeur1 : fonction1(); break; case valeur2 : fonction2(); break; case valeur3 : fonction3(); break; default : fonctionD(); break; }
(Encore que bon dans les langages compilés le switch est peut-être plus rapide pour des raisons de gestion de cache mémoire).
FiLH
-- Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle. Roland Barthes. http://www.filh.org
Olivier Miakinen <om+news@miakinen.net> wrote:
Parce qu'exécuter du code généré à la volée, ça ne facilite ni le débogage
ni la relecture.
Un code correctement pensé et structuré devrait (normalement...) pouvoir
se passer de ce genre de rustines.
Et est-ce qu'un code bien pensé et strucuturé peut se passer de fonction en
appelant une autre dynamiquement ?
Si non, comment puis-je ne pas utiliser eval() ?
switch (variable) {
case valeur1 :
fonction1();
break;
case valeur2 :
fonction2();
break;
case valeur3 :
fonction3();
break;
default :
fonctionD();
break;
}
(Encore que bon dans les langages compilés le switch est peut-être plus
rapide pour des raisons de gestion de cache mémoire).
FiLH
--
Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire
une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle.
Roland Barthes.
http://www.filh.org
Parce qu'exécuter du code généré à la volée, ça ne facilite ni le débogage ni la relecture. Un code correctement pensé et structuré devrait (normalement...) pouvoir se passer de ce genre de rustines.
Et est-ce qu'un code bien pensé et strucuturé peut se passer de fonction en appelant une autre dynamiquement ? Si non, comment puis-je ne pas utiliser eval() ?
switch (variable) { case valeur1 : fonction1(); break; case valeur2 : fonction2(); break; case valeur3 : fonction3(); break; default : fonctionD(); break; }
(Encore que bon dans les langages compilés le switch est peut-être plus rapide pour des raisons de gestion de cache mémoire).
FiLH
-- Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle. Roland Barthes. http://www.filh.org
Olivier Miakinen
switch (variable) { case valeur1 : fonction1(); break; case valeur2 : fonction2(); break; case valeur3 : fonction3(); break; default : fonctionD(); break; }