Eine Funktion höherer Ordnung ist eine Funktion, die entweder:
Es ist eine der Grundlagen der funktionalen Programmierung.
Beispiele für Funktionen höherer Ordnung in JS:
//map() and reduce() let nums = [1, 2, 3, 4] let addOne = nums.map((i) => i+1) // [2,3,4,5] let combined = nums.reduce((res, cur) => res+=cur, 0) // 10
Stellen Sie sich vor, Sie arbeiten mit Zahlenlisten und müssen verschiedene Operationen ausführen (z. B. verdoppeln, quadrieren oder eine Konstante hinzufügen). Anstatt mehrere ähnliche Schleifen zu schreiben, können Sie das Verhalten mit einer Funktion höherer Ordnung abstrahieren.
//normal version let numbers = [1, 2, 3, 4]; const squares = (nums) => { let result = []; for(let i of nums) { result.push(i*i); } return result; } const addThree = (nums) => { let result = []; for(let i of nums) { result.push(i+3); } return result; } squares(numbers) // [1,4,9,16] addThree(numbers) // [4,5,6,7]
//higher-order function version let numbers = [1, 2, 3, 4]; const applyAll = (func, nums) => { let result = []; for(let i of nums) { result.push(func(i)); } return result; } applyAll((i) => i*i, numbers) // [1,4,9,16] applyAll((i) => i+3, numbers) // [4,5,6,7]
Mit einer generischen Funktion höherer Ordnung applyAll können Sie mehrere Vorgänge verarbeiten und sich wiederholenden Code vermeiden.
Durch das Zusammenstellen kleiner Funktionen können Sie komplexeres Verhalten erstellen. Wenn Sie beispielsweise zunächst eine Liste von Zahlen filtern möchten, um nur gerade Zahlen zu erhalten, diese dann verdoppeln und anschließend alle addieren möchten, können Sie Funktionen höherer Ordnung verketten.
//you can chain filter -> map -> reduce let numbers = [1, 2, 3, 4]; let result = numbers .filter(i => i%2===0) .map(i => i*2) .reduce((res, cur) => res+=cur, 0); // 12
Jeder Schritt (Filtern, Zuordnen, Reduzieren) wird von einer Funktion höherer Ordnung verarbeitet, wodurch der Prozess modularer, einfacher zu warten und isoliert testbar wird.
Das ist es! Vielen Dank, dass Sie bis hierher gelesen haben. Bis zum nächsten Mal!
Das obige ist der detaillierte Inhalt vonWas ist eine Funktion höherer Ordnung in Javascript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!