Maison >interface Web >js tutoriel >Introduction aux fonctions d'ordre supérieur dans les compétences Javascript_javascript

Introduction aux fonctions d'ordre supérieur dans les compétences Javascript_javascript

WBOY
WBOYoriginal
2016-05-16 16:09:241254parcourir

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.


Copier le code Le code est le suivant :
var Moqi = fonction(p1){
This.add = fonction (p2){
           return p1 ' " p2;
};
Retour ajouter ;
};

On peut utiliser cette fonction comme ça


Copier le code Le code est le suivant :
console.log(Moqi('Bonjour')('Monde'));

Ce processus est peut-être un peu déroutant, alors examinez-le plus en détail.

Copier le code Le code est le suivant :
> 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')

Copier le code Le code est le suivant :
> 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 :
Copier le code Le code est le suivant :

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.

Copier le code Le code est le suivant :

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
Copier le code Le code est le suivant :

// 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. .
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn