PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.javascript > Re: Nom de fonction dynamique
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
Re: Nom de fonction dynamique

Réponse
 
LinkBack Outils de la discussion
Vieux 29/06/2007, 16h05   #1 (permalink)
Francis Spiesser
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Nom de fonction dynamique

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
}

--
______
Francis (enlever .NIPUBNISOUMIS)
"Quand tout baigne, il y a forcément quelque chose qui va couler"


  Réponse avec citation
Vieux 29/06/2007, 18h08   #2 (permalink)
Machaon
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Nom de fonction dynamique

"Francis Spiesser" <fspiesser@despixelsetdeshommes.NIPUBNISOUMIS.ne t> a
écrit dans le message de news:
mn.ec017d76f9fe1f01.2378@despixelset... BNISOUMIS.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 ?

Machaon


  Réponse avec citation
Vieux 29/06/2007, 19h17   #3 (permalink)
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Nom de fonction dynamique

Le 29/06/2007 20:05, Machaon a écrit :
>>
>> 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;
}
  Réponse avec citation
Vieux 29/06/2007, 19h53   #4 (permalink)
FiLH
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Nom de fonction dynamique

Machaon <jpalayodan@e-cml.org> wrote:

> "Francis Spiesser" <fspiesser@despixelsetdeshommes.NIPUBNISOUMIS.ne t> a
> écrit dans le message de news:
> mn.ec8c7d7639c14e81.2378@despixelset... BNISOUMIS.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
  Réponse avec citation
Vieux 30/06/2007, 05h53   #5 (permalink)
Bruno Desthuilliers
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Nom de fonction dynamique

Machaon a écrit :
> "Francis Spiesser" <fspiesser@despixelsetdeshommes.NIPUBNISOUMIS.ne t> a
> écrit dans le message de news:
> mn.ec017d76f9fe1f01.2378@despixelset... BNISOUMIS.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.
  Réponse avec citation
Vieux 30/06/2007, 08h58   #6 (permalink)
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Nom de fonction dynamique

Le 30/06/2007 09:49, FiLH a écrit :
>>
>> switch (variable) {
>> case valeur1 :
>> fonction1();
>> break;
>> case valeur2 :
>> fonction2();
>> break;
>> case valeur3 :
>> fonction3();
>> break;
>> default :
>> fonctionD();
>> break;
>> }

>
> Beark


Syntax error... try « break ».

> a=[];
>
> a["x"]=function () { alert("x");}
> a["y"]=function () { alert("y");}
>
> a["x"]();
> a["y"]();


Beurk ! :-)
  Réponse avec citation
Vieux 30/06/2007, 10h20   #7 (permalink)
FiLH
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Nom de fonction dynamique

Olivier Miakinen <om+news@miakinen.net> wrote:

> Le 30/06/2007 09:49, FiLH a écrit :
> >>
> >> switch (variable) {
> >> case valeur1 :
> >> fonction1();
> >> break;
> >> case valeur2 :
> >> fonction2();
> >> break;
> >> case valeur3 :
> >> fonction3();
> >> break;
> >> default :
> >> fonctionD();
> >> break;
> >> }

> >
> > Beark

>
> Syntax error... try « break ».
>
> > a=[];
> >
> > a["x"]=function () { alert("x");}
> > a["y"]=function () { alert("y");}
> >
> > a["x"]();
> > a["y"]();

>
> Beurk ! :-)


Non,car on peut ajouter des fonctions sans changer le code
Plus dynamique...

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
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 03h05.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,12933 seconds with 15 queries