Heim  >  Artikel  >  Web-Frontend  >  Einführung in Funktionen höherer Ordnung in Javascript_Javascript-Kenntnissen

Einführung in Funktionen höherer Ordnung in Javascript_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 16:09:241224Durchsuche

Das ist eine interessante Sache, die auch die Leistungsfähigkeit von Javascript-Objekten verdeutlichen könnte. Was wir tun müssen, ist, ein Hello, World auszugeben, wie im vorherigen Artikel erwähnt, und die Eingabe ist print('Hello')('World'), und dies ist die sogenannte High-Level-Funktion.

Funktionen höherer Ordnung

High-Level scheint ein esoterischer Begriff für eine fortgeschrittene Programmiertechnik zu sein, und das dachte ich auch, als ich es zum ersten Mal sah.

Funktionen höherer Ordnung von Javascript

Funktionen höherer Ordnung sind jedoch nur Funktionen, die Funktionen als Parameter oder Rückgabewerte annehmen. Nehmen Sie das obige Hello, World als einfaches Beispiel.


Code kopieren Der Code lautet wie folgt:
var Moqi = function(p1){
This.add = Funktion (p2){
           return p1 ' ' p2;
};
Geben Sie add;
zurück };

Wir können diese Funktion so verwenden


Code kopieren Der Code lautet wie folgt:
console.log(Moqi('Hello')('World'));

Vielleicht ist dieser Vorgang etwas verwirrend, schauen Sie sich ihn also genauer an.

Code kopieren Der Code lautet wie folgt:
> Typ von Moqi('Hallo')
<- „Funktion“
> Moqi('Hallo')
<- Funktion (p2){
           return p1 ' ' p2;
}

Mit anderen Worten, Moqi('Hallo') ist eigentlich eine Funktion, Moqi('Hallo')

Code kopieren Der Code lautet wie folgt:
> var m = Moqi('Hallo')                                                   > m('Welt')
> „Hallo Welt“


Aus der obigen Situation können Funktionen höherer Ordnung den Code prägnanter und effizienter machen. Natürlich können wir auch eine Funktion erstellen, damit:


> Moqi('Hallo')('Welt')('Phodal')
> „Hallo Welt Phodal“


Es gibt also eine solche Funktion


var Moqi = function(p1){
Rückgabefunktion (p2){
         return function(p3){
                 return p1 ',' p2 ' ' p3;
}
};
};


Funktionen höherer Ordnung wiederherstellen

Es wird immer komplexer und das Signal, dass eine Funktionsabstraktion höherer Ordnung eingeführt werden muss, ist das Auftreten von wiederholtem oder ähnlichem Code. Dann stellen wir Schritt für Schritt die vorherige Funktion wieder her:


var Moqi = function(p1){
This.add = Funktion (p2){
         return function(p3){
                 return p1 ',' p2 ' ' p3;
}
};
Geben Sie this.add;
zurück };


Erstellen Sie dann eine neue Funktion


Code kopieren Der Code lautet wie folgt:

var Moqi = function(p1){
This.add = Funktion (p2){
This.add1 = function(p3){
                 return p1 ',' p2 ' ' p3;
        };
          return this.add1;
};
Geben Sie this.add;
zurück };

Bei Verwendung der Aufrufmethode in Javascript wird Folgendes angezeigt:
Code kopieren Der Code lautet wie folgt:

var Moqi = function(p1){
var self = this;

Funktion fd(p2) {
This.add1 = Funktion (p3) {
                 return p1 ',' p2 ' ' p3;
        };
}

self.add = function (p2){
            fd.call(this, p2);
          return this.add1;
};
Geben Sie self.add;
zurück };

Funktionsbeispiele höherer Ordnung

Das obige Beispiel dient nur zum Spaß, das folgende Beispiel dient der realen Anwendung.

Code kopieren Der Code lautet wie folgt:

add = function(a,b){
Geben Sie a b;
zurück };

Funktionsmathematik(func,array){
Rückgabe func(array[0],array[1]);
}

console.log(math(add,[1,2]));

> math(add,[1,2])
< 3


Im obigen Beispiel ist das übergebene Add ein Parameter und bei der Rückgabe nur eine Funktion. Beispielsweise gibt es in jQuery eine Funktion für
Code kopieren Der Code lautet wie folgt:

// Dasged in camelCase konvertieren; wird von den CSS- und Datenmodulen verwendet
// Microsoft hat vergessen, das Herstellerpräfix (#9572) anzugeben
camelCase: function( string ) {
Rückgabe string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
},

Es wird auch auf diese Weise verwendet, was zeigt, wie wichtig Funktionen höherer Ordnung für die gute Beherrschung von JS sind. .
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn