Javascript
function multiplier(factor) {
// C'est la fonction de la closure
return function (number) {
return factor * number;
};
}
// Maintenant, utilisons la closure
const doubler = multiplier(2); // doubler est maintenant une closure qui double un nombre
const resultat = doubler(5); // Utilise la closure pour doubler 5
console.log(resultat); // Cela affichera 10, car 2 * 5 = 10
const tripler = multiplier(3); // tripler est une autre closure qui triple un nombre
const resultat2 = tripler(7); // Utilise la closure pour tripler 7
console.log(resultat2); // Cela affichera 21, car 3 * 7 = 21
Dans cet exemple, multiplier est une fonction qui prend un « facteur » en argument et retourne une autre fonction (la closure).
Cette closure prend un « nombre » en argument et le multiplie par le « facteur » donné lors de la création de la closure.
Lorsque nous utilisons multiplier(2), nous créons une closure qui double un nombre, que nous stockons dans la variable doubler.
Ensuite, nous pouvons utiliser doubler(5) pour doubler 5, ce qui nous donne 10.
De même, avec multiplier(3), nous créons une autre closure qui triple un nombre, que nous utilisons pour tripler 7, obtenant ainsi 21.
function multiplier(factor) {
// C'est la fonction de la closure
return function (number) {
return factor * number;
};
}
// Maintenant, utilisons la closure
const doubler = multiplier(2); // doubler est maintenant une closure qui double un nombre
const resultat = doubler(5); // Utilise la closure pour doubler 5
console.log(resultat); // Cela affichera 10, car 2 * 5 = 10
const tripler = multiplier(3); // tripler est une autre closure qui triple un nombre
const resultat2 = tripler(7); // Utilise la closure pour tripler 7
console.log(resultat2); // Cela affichera 21, car 3 * 7 = 21
Dans cet exemple, multiplier est une fonction qui prend un « facteur » en argument et retourne une autre fonction (la closure).
Cette closure prend un « nombre » en argument et le multiplie par le « facteur » donné lors de la création de la closure.
Lorsque nous utilisons multiplier(2), nous créons une closure qui double un nombre, que nous stockons dans la variable doubler.
Ensuite, nous pouvons utiliser doubler(5) pour doubler 5, ce qui nous donne 10.
De même, avec multiplier(3), nous créons une autre closure qui triple un nombre, que nous utilisons pour tripler 7, obtenant ainsi 21.
Jsfiddle
Testez vos propres exemples sous Jsfiddle. Cliquez ici