Bienvenue et dans cette leçon, nous allons parler des fonctions JavaScript d'ordre supérieur. Et la chose sur laquelle tout est construit, est l'idée que JavaScript traite les fonctions comme des objets. Ainsi, à certains endroits, par exemple, où vous avez l'habitude d'utiliser des variables, vous pouvez également utiliser des fonctions. Ce qui signifie que nous pouvons passer une fonction en paramètre à un autre et obtenir une fonction comme valeur de retour. Les fonctions sont donc des membres de premier ordre de JavaScript. Nous pouvons donc les stocker dans des variables même si nous le souhaitons. Donc, des fonctions d'ordre supérieur non plus prendre une fonction comme argument ou renvoyer une fonction. Et c'est une page avec laquelle nous allons travailler et nous le remplirons au fur et à mesure. La bonne nouvelle est, vous en avez probablement déjà fait un peu. Par exemple, Voyons voir, j'ai un tas de mes boutons ici, funcAsArg. Alors fonctionne comme un argument. Si je veux créer un gestionnaire d'événements pour ça, Je vais utiliser la fonction on de jQuery et le paramètre qu'il prend est le nom de l'événement et devinez quoi, une fonction. Donc ça pourrait être le nom d'une fonction c'est déjà là-bas, ce pourrait être un anonyme que nous avons créé il peut s'agir de la fonction flèche qui est également anonyme. Si tu as déjà fait ça et je suppose en JavaScript à un moment donné, vous l'avez fait d'une manière ou d'une autre. Devinez quoi? Vous utilisez déjà des fonctions d'ordre supérieur, pas mal. Donc, en cliquant, nous allons juste montrer quelque chose en HTML. Il n'y a rien de merveilleux à propos de ce code ici mais je voulais en quelque sorte souligner qu'est-ce que vous avez utilisé assez souvent mais peut-être n'a jamais su dans quel but vous l'utilisiez ou pourquoi cela a fonctionné. Maintenant, regardons une fonction qui renvoie une fonction et comment nous pourrions structurer cela. Alors disons que je vais changer les signes sur un numéro. Maintenant, ce serait une opération relativement facile à faire bien sûr, mais nous créons cet exemple afin que nous puissions montrer les fonctions d'ordre supérieur. Alors peut-être qu'au lieu de simplement renvoyer une variable, nous allons retourner une fonction. Et nous allons prendre cette valeur originale et faire quelque chose avec ça. Oui, cela pourrait être une fonction autonome, mais encore une fois, nous ne faisons que démontrer la fonctionnalité ici. Donc, quand j'appelle cette fonction, je récupère une autre fonction. Alors, comment pouvons-nous faire en sorte que cela fonctionne? Eh bien, je vais dire, ne réfléchissez pas trop. Nous sommes habitués aux fonctions qui renvoient une variable et nous stockons simplement ces données quelque part. Eh bien, c'est une fonction ça va retourner une autre fonction l'idée étant que nous pouvons en faire quelque chose. Alors disons par exemple, nous allons faire deux façons différentes de l'appeler ici. Il y a des panneaux d'aiguillage et l'argument de direction selon les besoins. Donc je vais stocker la fonction qui est retournée dans forMomAndDad et dans forTheBooks. Donc pour le moment, je n'ai vraiment rien du tout où la magie opère, c'est quand je prends ces variables et je lui passe ce dont il a besoin. C'est donc la fonction qu'elle renvoie cette fonction interne, notice a un paramètre de valeur d'origine. C'est ce que je transmets en fait à ce stade. Maintenant remarquez ici, ma direction est positive pour maman et papa laissez-le sur le, forTheBooks. Non pas que nous fassions quelque chose de malhonnête, mais nous voulons que maman et papa pensent que nous allons bien. Et ça? Testons donc cette fonction en tant que valeur de retour. Papa et maman voient 500, la comptabilité voit la vraie chose. Ne mentez pas à votre compte, ce n'est pas une bonne idée. Et vérifions ici et nous entrerons quelque chose, on y va. Et nous savons que la précédente a également fonctionné. Nous avons donc une fonction qui prend une valeur fonction qui renvoie une autre fonction que nous finissons par appeler plus tard. Donc, une autre chose que nous pouvons faire est d'utiliser les fonctions Javascript qui sont déjà là-bas qui sont d'ordre supérieur et le filtre en fait partie. Ce que je vais faire, c'est taper une ou plusieurs lettres ici. Et nous allons trouver laquelle des options dans la boîte qui correspond en fait là-bas. Alors commençons par mettre cela en place Et je vais juste prendre chacune de mes options dans la boîte et je vais créer le tableau d'une ville et ensuite il suffit de pousser tout le texte de ça dans le tableau de la ville que nous allons examiner plus tard. Ça va être l'endroit où nous tapons la ou les lettres et alors notre fonction de filtre ressemblera à ceci. Donc c'est juste un filtre et c'est d'ordre supérieur car il prend une fonction comme argument. Dans ce cas, c'est une fonction anonyme. Nous regardons ce mot, Je n'ai pas vraiment besoin de la console qui s'y connecte mais on va voir si le personnage correspond, car si nous récupérons une valeur supérieure à zéro, alors on sait que ce personnage a été trouvé dans cette chaîne quelque part et ensuite nous allons simplement l'afficher sur la page. Donc, nous montrons juste combien de correspondances il y a eu et en l'ajoutant à la page. La grande chose à propos de celui-ci est que j'utilise un filtre. C'est une fonction d'ordre supérieur car il prend cette fonction comme argument. Alors disons que diriez-vous de la lettre a cela semble apparaître dans bon nombre d'entre eux. On y va, on a huit matches. Que diriez-vous de "at" comme expression? Juste un match. Essayez celui-là, encore une fois, juste celui-là. Donc tu as quelques fonctions que vous pouvez utiliser pour travailler avec des tableaux, filtre, étant l'un d'entre eux que nous allons parcourir chaque membre d'un tableau et donné une certaine fonction, vous dire s'il fait partie de cette fonction booléenne que vous avez demandé de regarder en premier. Nous pouvons également faire Réduire qui est une autre fonction d'ordre supérieur et je vais avoir les options à nouveau. Avec celui-ci, qu'est-ce que je vais faire prend toutes les longueurs de chacune des options de la boîte et Réduire, prend une fonction qui me rend un résultat. Donc, il réduit ce tableau à une valeur et vous pouvez faire tout ce que vous voulez là-bas. Je vais passer au total et actuel. Et ça va juste être une somme en cours ça va me donner la longueur de tous les personnages de la boîte. Encore une fois, Reduce prend une fonction comme argument. Le second est exactement ce que la valeur par défaut est quand il démarre. Donc je devrais être capable d'additionner tout cela ensemble et il semble que j'ai peut-être un appareil dentaire de trop. Alors corrigeons ça. On y va. Le nombre total de caractères et tous les éléments d'option sont de 78. Vous pouvez les compter vous-même et voir mais je pense que ça marche. Donc dans cette leçon, nous avons regardé une introduction à l'utilisation de fonctions d'ordre supérieur dans JavaScript. Et merci d'avoir regardé. Dans notre prochaine leçon, nous parlerons des fonctions JavaScript qui sont appelés itérateurs et générateurs.