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 ?
Si tu fais f2("f1" ) ? ou f2(f1) ?
|
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 :
function foo() { // blabla }
|
est parfaitement équivalent à
Code :
var foo = function () { // blabla }
|
Et `foo` est appelé de la même manière dans les deux cas:
Parce que c'est lent, parce que c'est habituellement inutile, et parce que ça pose un risque de code-injection.
---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody