Compléments Javascript
HOF
En JavaScript, une HOF signifie "Higher-Order Function" (fonction d'ordre supérieur). Une fonction d'ordre supérieur est une fonction qui peut prendre une autre fonction comme argument et/ou retourner une fonction comme sa valeur de retour.
Les fonctions d'ordre supérieur sont un concept important en programmation fonctionnelle, et JavaScript, bien qu'étant un langage multi-paradigme, supporte bien ce style de programmation.
Voici quelques exemples de fonctions d'ordre supérieur en JavaScript:
- Fonctions qui prennent d'autres fonctions comme arguments:
Array.prototype.map
,Array.prototype.filter
, etArray.prototype.reduce
sont des exemples classiques de fonctions d'ordre supérieur intégrées dans JavaScript. Elles prennent chacune une fonction callback en tant qu'argument.
const numbers = [1, 2, 3, 4, 5];
// La fonction map prend une fonction callback et retourne un nouveau tableau
const squares = numbers.map(function(number) {
return number * number;
});
// La fonction filter prend aussi une fonction callback et retourne un nouveau tableau
const evenNumbers = numbers.filter(function(number) {
return number % 2 === 0;
});
- Fonctions qui retournent d'autres fonctions:
- Vous pouvez créer des fonctions qui retournent des fonctions, permettant des techniques comme le currying et la partial application.
function createGreeting(greeting) {
return function(name) {
return greeting + ', ' + name + '!';
};
}
const sayHello = createGreeting('Hello');
const sayGoodbye = createGreeting('Goodbye');
console.log(sayHello('Alice')); // "Hello, Alice!"
console.log(sayGoodbye('Bob')); // "Goodbye, Bob!"
Les fonctions d'ordre supérieur vous permettent d'écrire du code plus abstrait et réutilisable, et elles sont un outil puissant pour manipuler des structures de données et créer des abstractions plus complexes.