IPB

Bienvenue invité ( Connexion | Inscription )

> JavaScript ES6 * Closure et conservation de valeur de paramètre [Résolu]
Options
scoch
posté 19 Apr 2020, 12:51
Message #1


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 851
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 idée explication, je suis preneur !
Merci.

Ré édit : titre conforme à la charte smile.gif

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
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
Jaypee
posté 22 Apr 2020, 21:49
Message #2


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Magnifique !

JP
Go to the top of the page
 
+Quote Post

Les messages de ce sujet


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 2nd June 2024 - 20:33