JavaScript ES6 * Closure et conservation de valeur de paramètre [Résolu] |
Bienvenue invité ( Connexion | Inscription )
JavaScript ES6 * Closure et conservation de valeur de paramètre [Résolu] |
19 Apr 2020, 12:51
Message
#1
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 4 885 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
|
|
|
Nous sommes le : 20th September 2024 - 08:35 |