paint-brush
Comprendre les fonctions de première classe et d'ordre supérieurpar@iggy
3,570 lectures
3,570 lectures

Comprendre les fonctions de première classe et d'ordre supérieur

par Ignatius Sani3m2022/11/13
Read on Terminal Reader
Read this story w/o Javascript

Trop long; Pour lire

Une fonction de première classe est une fonctionnalité qu'un langage de programmation ou un langage de programmation possède, c'est une fonction qui reçoit une autre fonction comme argument. La principale différence entre les fonctions d'ordre supérieur est qu'une fonction est appelée après avoir été appelée après l'exécution. En Javascript, nous pouvons stocker une fonction dans une variable ou même une propriété, comme vous le feriez pour faire la moyenne des valeurs Javascript. Cela ouvre une nouvelle façon d'écrire du code plus flexible puisque nous le pouvons. stocke les fonctions dans a. variable ou ajouter des propriétés.
featured image - Comprendre les fonctions de première classe et d'ordre supérieur
Ignatius Sani HackerNoon profile picture


Bonjour à tous! Aujourd'hui, je vais discuter d'un concept très célèbre en programmation (fonctions de première classe). Il y a déjà tellement de ressources sur ce sujet, mais il y a encore quelque chose de nouveau à tirer de cet article, et j'ai pris le temps de simplifier les choses pour une meilleure compréhension.


Pourquoi est-ce important pour moi en tant que développeur ?

  • Cela vous aide à mieux comprendre les fonctions de rappel Javascript lorsque vous les voyez utilisées.
  • Cela vous aide à connaître le comportement de votre code.
  • Cela vous permet de mieux comprendre pourquoi Javascript traite les fonctions comme des valeurs.


Qu'est-ce qu'une fonction de première classe ?

Selon Wikipedia, un langage de programmation est dit avoir des fonctions de première classe s'il traite les fonctions comme des citoyens de première classe .


Cela signifie que le langage prend en charge le passage de fonctions en tant qu'arguments à d'autres fonctions, en les renvoyant comme valeurs de différentes fonctions, en les affectant à des variables ou en les stockant dans des structures de données.


En Javascript, les choses fonctionnent ainsi car une fonction n'est qu'un autre type d'objet. Si vous êtes nouveau dans ce concept, vous auriez l'impression que c'est assez gênant, surtout si vous venez d'un milieu de programmation différent, mais pour l'instant, concentrez-vous sur cela. Puisque les objets sont des valeurs, les fonctions le sont aussi, et Javascript les traite comme une seule. Cela ouvre une nouvelle façon d'écrire du code plus flexible puisque nous pouvons stocker des fonctions dans une variable ou ajouter des propriétés.

J'ai décomposé les principaux points dans une liste à puces pour faciliter les choses. Pour mieux comprendre les fonctions de première classe, voici quelques points pour le clarifier.


  • Fonctionne comme un argument
  • Fonctions renvoyant des fonctions
  • Fonctions comme valeurs

Fonctionne comme un argument

Une chose rendue possible avec une fonction de première classe est de passer une fonction en argument ; nous pouvons voir ce style de code dans beaucoup de code Javascript. Par exemple, la méthode addEventListener, qui reçoit une fonction de rappel Javascript comme argument, par exemple


 button.addEventListener('click', function(){ console.log('hellloooo') })


Dans l'extrait de code précédent, nous observons que addEventListener reçoit deux arguments, où la deuxième fonction est la fonction de rappel, et serait appelée après que le bouton ait été cliqué.


Fonctions renvoyant des fonctions

Nous pouvons renvoyer des fonctions à partir d'une autre fonction en Javascript ; de nombreux objets en Javascript ont des méthodes, par exemple, les fonctions Array en javascript. De plus, nous avons la méthode de la fonction, par exemple, les méthodes Javascript call() , bind() , apply() peuvent toutes être appelées sur les fonctions Javascript.


 function count(){ Let counter = 0; return function(){ counter++ } }


La fonction count a renvoyé une autre fonction où nous avons mis à jour le compteur.


Fonctions comme valeurs

En Javascript, nous pouvons stocker une fonction dans une variable ou même une propriété, comme vous le feriez pour faire la moyenne des valeurs Javascript.


 Const multiply = (a,b) => a * b


La fonction de flèche Javascript ci-dessus est stockée dans la variable de multiplication, qui peut être appelée

multiplier(3,5) de cette façon.


Importance des fonctions de première classe en Javascript

L'une des principales significations des fonctions de première classe est qu'elles nous permettent d'écrire des fonctions d'ordre supérieur.



Fonction d'ordre supérieur

Il s'agit soit d'une fonction qui reçoit une autre fonction en argument, soit d'une fonction qui renvoie une nouvelle fonction. Ceci n'est possible qu'en raison de la fonction de première classe.


 button.addEventListener('click', function(){ console.log('hellloooo') })


Ici, addEventListener() est un exemple de fonction d'ordre supérieur car elle reçoit une autre fonction en tant qu'argument. Il fait souvent référence à une fonction de rappel Javascript car elle a été appelée après l'exécution du HOF. La principale différence entre les fonctions d'ordre supérieur et de première classe est qu'une fonction de première classe est une fonctionnalité qu'un langage de programmation possède ou non, cela signifie simplement que toutes les fonctions sont des valeurs.


Conclusion

En conclusion, il est essentiel de savoir qu'il n'y a pas de fonction de première classe dans la pratique ; c'est juste un concept. Il existe cependant des fonctions d'ordre supérieur en pratique qui sont possibles car le langage prend en charge les fonctions de première classe.