Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Fonction de première classe

Un langage de programmation est dit avoir des fonctions de première classe lorsque les fonctions dans ce langage sont traitées comme n'importe quelle autre variable. Par exemple, dans un tel langage, une fonction peut être passée comme argument à d'autres fonctions, peut être retournée par une autre fonction et peut être assignée comme valeur à une variable.

Exemples

Affecter une fonction à une variable

js
const toto = () => {
  console.log("salut");
};
toto(); // Invoque la fonction en utilisant la variable
// salut

Nous avons assigné une fonction anonyme à une variable, puis nous avons utilisé cette variable pour invoquer la fonction en ajoutant des parenthèses () à la fin.

Note : Même si votre fonction était nommée, vous pouvez utiliser le nom de la variable pour l'invoquer. Donner un nom à la fonction sera utile lors du débogage de votre code. Mais cela n'affectera pas la façon dont nous l'invoquons.

Passer une fonction en argument

js
function direBonjour() {
  return "Bonjour, ";
}
function salutation(textDeBonjour, nom) {
  console.log(textDeBonjour() + nom);
}
// Passez `direBonjour` comme argument à la fonction `salutation`
salutation(direBonjour, "JavaScript !");
// Bonjour, JavaScript !

Nous passons notre fonction direBonjour() comme argument à la fonction salutation(), ce qui montre comment nous traitons la fonction comme une valeur.

Note : La fonction que nous passons comme argument à une autre fonction est appelée une fonction de rappel. direBonjour() est une fonction de rappel.

Retourner une fonction

js
function direBonjour() {
  return () => {
    console.log("Bonjour !");
  };
}

Dans cet exemple, nous retournons une fonction depuis une autre fonction — Nous pouvons retourner une fonction car les fonctions en JavaScript sont traitées comme des valeurs.

Note : Une fonction qui retourne une fonction ou prend d'autres fonctions en argument est appelée une fonction d'ordre supérieur.

Voir aussi