Bienvenue invité ( Connexion | Inscription )
19 Apr 2020, 12:51
Message
#1
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 5 016 Inscrit : 1 Jul 2010 Membre no 156 073 |
Bonjour,
j’essaie, sans succès, d’adapter avec des fonctions fléchées d’ES6 ce code qui permet de conserver une valeur de paramètre en référençant une fonction qui contient une fermeture (closure) : Exemple qui fonctionne sans fonctions fléchées : Code function externe(x) { function interne(y) { return x + y; } return interne; } let resultat = externe(1)(3); console.log(resultat); // affiche 4 // référencer la fonction externe avec une valeur en paramètre // cette valeur est conservée const fonctionInterne = externe(3); // appel de la fonction externe avec passage de paramètre // pour la fonction interne resultat = fonctionInterne(5); console.log(resultat); // affiche 8 (3 + 5) resultat = fonctionInterne(4); console.log(resultat); // affiche 7 (3 + 4) Exemple qui ne fonctionne pas avec des fonctions fléchées : Code const externe = (x) => { const interne = (y) => { x + y; } interne; } const fonctionInterne = externe(3); let resultat = fonctionInterne(5); console.log(resultat); // TypeError: fonctionInterne is not a function Edit : j’ai solutionné le problème qui semble venir du fait que, dans ce cas, le retour implicite de valeur ne fonctionne pas. J’ai donc utilisé explicitement return. La solution : Code const externe = (x) => { const interne = (y) => { return x + y; } return interne; } Si vous avez une Merci. Ré édit : titre conforme à la charte Ce message a été modifié par scoch - 19 Apr 2020, 23:52. -------------------- L'homme n'est que poussière... c'est dire l'importance du plumeau ! Alexandre Vialatte
|
|
|
|
scoch JavaScript ES6 * Closure et conservation de valeur de paramètre [Résolu] 19 Apr 2020, 12:51
Jaypee On peut ne pas nommer la fonction interne, mais ef... 22 Apr 2020, 12:46
scoch Citation (Jaypee @ 22 Apr 2020, 13:46) Pa... 22 Apr 2020, 13:23
scoch Citation (Jaypee @ 22 Apr 2020, 13:46) La... 22 Apr 2020, 19:53
Jaypee Magnifique !
JP 22 Apr 2020, 21:49![]() ![]() |
| Nous sommes le : 3rd November 2025 - 23:21 |