Heim > Web-Frontend > js-Tutorial > Hauptteil

Was ist eine Funktion höherer Ordnung in Javascript?

Patricia Arquette
Freigeben: 2024-10-22 06:21:31
Original
960 Leute haben es durchsucht

What is higher-order function in Javascript

Was ist eine Funktion höherer Ordnung?

Eine Funktion höherer Ordnung ist eine Funktion, die entweder:

  • Übernimmt eine oder mehrere Funktionen als Argumente
  • Gibt eine Funktion als Ergebnis zurück

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
Nach dem Login kopieren

Warum eine Funktion höherer Ordnung verwenden?

Vereinfacht wiederholte Muster (Abstraktion) und Wiederverwendbarkeit

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]
Nach dem Login kopieren
//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]
Nach dem Login kopieren

Mit einer generischen Funktion höherer Ordnung applyAll können Sie mehrere Vorgänge verarbeiten und sich wiederholenden Code vermeiden.

Komplexe Logik aus kleinen Funktionen aufbauen (Zusammensetzbarkeit)

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
Nach dem Login kopieren

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!

Quelle:dev.to
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!