C'est une chose intéressante, qui peut aussi illustrer la puissance des objets Javascript. Ce que nous devons faire est de générer un Hello, World comme mentionné dans l'article précédent , et l'entrée est print('Hello')('World'), et c'est ce qu'on appelle la fonction de haut niveau.
Fonctions d'ordre supérieur
Haut niveau semble être un terme ésotérique pour désigner une technique de programmation avancée, et c'est ce que j'ai pensé quand je l'ai vu pour la première fois.
Fonctions d'ordre supérieur de Javascript
Cependant, les fonctions d'ordre supérieur ne sont que des fonctions qui prennent des fonctions comme paramètres ou renvoient des valeurs. Prenons le Hello, World ci-dessus comme exemple simple.
var Moqi = fonction(p1){
This.add = fonction (p2){
return p1 ' " p2;
};
Retour ajouter ;
};
On peut utiliser cette fonction comme ça
console.log(Moqi('Bonjour')('Monde'));
Ce processus est peut-être un peu déroutant, alors examinez-le plus en détail.
> type de Moqi('Bonjour')
<- "fonction"
>Moqi('Bonjour')
<- fonction (p2){
return p1 ' " p2;
>
En d'autres termes, Moqi('Hello') est en fait une fonction, Moqi('Hello')
> var m = Moqi('Bonjour')
> m('Monde')
> "Bonjour le monde"
À partir de la situation ci-dessus, des fonctions d'ordre supérieur peuvent rendre le code plus concis et efficace. Naturellement on peut aussi créer une fonction pour que :
> Moqi('Bonjour')('Monde')('Phodal')
> "Bonjour, Monde Phodal"
Il existe donc une telle fonction
var Moqi = fonction(p1){
Fonction de retour (p2){
fonction de retour (p3){
return p1 ',' p2 ' ' p3;
>
};
};
Restaurer les fonctions d'ordre supérieur
Cela devient de plus en plus complexe, et le signal indiquant qu'une abstraction de fonctions d'ordre supérieur doit être introduite est l'apparition d'un code répété ou similaire. Ensuite, on rétablit la fonction précédente étape par étape :
var Moqi = fonction(p1){
This.add = fonction (p2){
fonction de retour (p3){
return p1 ',' p2 ' ' p3;
>
};
Renvoyez ceci.add;
};
Créez ensuite une nouvelle fonction
Copier le code Le code est le suivant :
var Moqi = fonction(p1){
This.add = fonction (p2){
This.add1 = fonction(p3){
return p1 ',' p2 ' ' p3;
};
return this.add1;
};
Renvoyez ceci.add;
};
En utilisant la méthode call en javascript, il y aura :
var Moqi = fonction(p1){
var soi = ceci;
fonction fd(p2) {
This.add1 = fonction (p3) {
return p1 ',' p2 ' ' p3;
};
>
self.add = fonction (p2){
fd.call(this, p2);
return this.add1;
};
Retourner self.add;
};
Exemples de fonctions d'ordre supérieur
L'exemple ci-dessus est juste pour le plaisir, l'exemple suivant est pour une application réelle.
ajouter = fonction(a,b){
Renvoyer un b ;
};
fonction mathématique(func,array){
Retour func(array[0],array[1]);
>
console.log(math(add,[1,2]));
> maths(ajouter,[1,2])
<3
Dans l'exemple ci-dessus, l'ajout transmis est un paramètre et, lorsqu'il est renvoyé, il s'agit simplement d'une fonction. Par exemple, il existe une fonction dans jQuery pour
// Convertir les tirets en camelCase ; utilisé par les modules css et data
// Microsoft a oublié d'indiquer le préfixe de son fournisseur (#9572)
camelCase : fonction (chaîne) {
Renvoie string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
},
Il est également utilisé de cette manière, ce qui montre à quel point les fonctions d'ordre élevé sont importantes pour bien maîtriser JS. .