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.
var Moqi = function(p1){
This.add = Funktion (p2){
return p1 ' ' p2;
};
Geben Sie add;
zurück
};
Wir können diese Funktion so verwenden
console.log(Moqi('Hello')('World'));
Vielleicht ist dieser Vorgang etwas verwirrend, schauen Sie sich ihn also genauer an.
> Typ von Moqi('Hallo')
<- „Funktion“
> Moqi('Hallo')
<- Funktion (p2){
return p1 ' ' p2;
}
Mit anderen Worten, Moqi('Hallo') ist eigentlich eine Funktion, Moqi('Hallo')
> 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:
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.
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
// 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. .