Javascript: Fonction en paramètre - HTML/CSS - Programmation
Marsh Posté le 23-09-2006 à 03:00:17
non tu mets pas une fonction en parametre
dis nous plutot ce que tu veux faire parce que ca semble n avoir aucun sens exposé ainsi
Marsh Posté le 23-09-2006 à 05:07:08
Code :
|
Marsh Posté le 23-09-2006 à 13:04:58
Cela dit, c'est possible avec eval() de donner une fonction en paramètre, mais c'est pas bien recommendable
Marsh Posté le 23-09-2006 à 13:09:54
tiens en php aussi on dit qu eval c est le mal et j ai jamais compris pourquoi en fait :$
Marsh Posté le 23-09-2006 à 13:12:42
gooopil a écrit : Cela dit, c'est possible avec eval() de donner une fonction en paramètre, mais c'est pas bien recommendable |
Tu as vu ce que j'ai posté ???
J'ai passé une fonction en paramètre
Marsh Posté le 23-09-2006 à 13:18:09
gatsu35 a écrit : Tu as vu ce que j'ai posté ??? |
Oui j'ai vu ton code, et ça marche ce truc ?
Si tu fais f2("f1" ) ? ou f2(f1) ?
Marsh Posté le 23-09-2006 à 13:26:04
ah c est un peu la technique du window.onload = mafonction;
j avais pas compris a la premiere lecture
sinon pourquoi c est mal eval ?
Marsh Posté le 23-09-2006 à 13:31:26
Code :
|
tu peux meme faire comme ça :
Code :
|
Vas y teste. là on passe une reference de fonction et donc ca marche. Le eval c'est crade et je vois pas comment vous voulez l'utiliser dans ce cas.
Le eval c'est seulement utile quand tu veux qu'un utilisateur tape du Javascript dans un champ et que tu veux l'executer.
sinon aucun intérêt et ça relève tu codage de porc.
Marsh Posté le 23-09-2006 à 13:46:53
gatsu35 a écrit :
|
J'ai testé entre temps, je connaissais pas cette possibilité, c'est interresssant
gatsu35 a écrit : |
On est entièrement d'accord la dessus !
Marsh Posté le 23-09-2006 à 14:10:52
ha j aime bien le deuxieme exemple
donc c est possible désolé paowz
Marsh Posté le 23-09-2006 à 14:26:48
gooopil a écrit : Cela dit, c'est possible avec eval() de donner une fonction en paramètre, mais c'est pas bien recommendable |
gooopil a écrit : Oui j'ai vu ton code, et ça marche ce truc ? |
f2(f1).
En javascript (comme dans pas mal de langages, le PHP n'étant pas un langage mais une merde en bâtons) une fonction est un objet comme un autre. C'est le principe "function as first-class object" qui existe dans tous les langages fonctionnels, et un certain nombre de langage impératifs/objets (le C a les function-pointers, Python et JS ont des objets fonctions, Ruby et Smalltalk ont des "blocks" qui sont fondamentalement des fonctions avec une syntaxe spécifique, ...).
Dans ces langages, une fonction peut être utilisée comme argument, comme valeur de retour d'une autre fonction, ou les deux. Les fonctions manipulant d'autres fonctions sont appelées "high-order functions" (parce qu'elles manipulent des manipulateurs d'objets au lieu de ne manipuler que des objets), et leur utilisation "higher-order programming".
En JS, écrire
Code :
|
est parfaitement équivalent à
Code :
|
Et `foo` est appelé de la même manière dans les deux cas:
Code :
|
mIRROR a écrit : sinon pourquoi c est mal eval ? |
Parce que c'est lent, parce que c'est habituellement inutile, et parce que ça pose un risque de code-injection.
Marsh Posté le 23-09-2006 à 14:50:35
masklinn a écrit : En javascript une fonction est un objet comme un autre. |
ca je commencais a le comprendre un peu genre les evenements, les prototypes toussa
mais c est encore assez nouveau ^^
masklinn a écrit : une fonction peut être utilisée comme [...] valeur de retour d'une autre fonction |
tiens ca aussi c est marrant
Marsh Posté le 23-09-2006 à 22:34:45
Et bien merci à vous d'avoir répondu avec autant d'avis
Cordialement.
Marsh Posté le 22-09-2006 à 22:35:24
Bonjour,
Comment doit-on écrire la fonction ma_fonction(fonc) pour qu'elle puisse prendre une fonction en paramètre ?
Exemple: j'appelle
et je voudrais que dans le code de ma_fonction() soit appelée autre_fonction() ?
Merci bien.