Funktionen höherer Ordnung in JavaScript verstehen

Jan 22 2023
JavaScript ist eine leistungsstarke Programmiersprache, die eine breite Palette an Funktionen und Fähigkeiten bietet. Eine der wichtigsten und vielseitigsten Funktionen von JavaScript sind Funktionen höherer Ordnung.

JavaScript ist eine leistungsstarke Programmiersprache, die eine breite Palette an Funktionen und Fähigkeiten bietet. Eine der wichtigsten und vielseitigsten Funktionen von JavaScript sind Funktionen höherer Ordnung. Diese Funktionen nehmen eine oder mehrere Funktionen als Argumente an und/oder geben eine Funktion als Ergebnis zurück, was ein hohes Maß an Flexibilität und Abstraktion ermöglicht.

Was ist eine Funktion höherer Ordnung?

Eine Funktion höherer Ordnung ist eine Funktion, die entweder eine oder mehrere Funktionen als Argumente annimmt und/oder eine Funktion als Ergebnis zurückgibt. Erstellen wir unsere eigene benutzerdefinierte setTimeout-Methode mit dem Namen mySetTimeout:

function mySetTimeout(callback, delay) {
  setTimeout(callback, delay);
}

Hier ist ein Beispiel dafür, wie Sie mySetTimeoutdas zuvor erstellte verwenden können:

function sayHello() {
  console.log("Hello!");
}
mySetTimeout(sayHello, 1000);

Verwendung von Funktionen höherer Ordnung in einem realistischen Szenario

Nehmen wir an, Sie erstellen eine E-Commerce-Website und möchten dem Benutzer eine Produktliste anzeigen. Sie möchten die Produkte nach bestimmten Kriterien wie Preis und Kategorie filtern. Sie können eine Funktion höherer Ordnung verwenden, um die Produkte zu filtern.

const products = [
  { name: 'Product 1', price: 10, category: 'Electronics' },
  { name: 'Product 2', price: 20, category: 'Fashion' },
  { name: 'Product 3', price: 30, category: 'Electronics' },
  { name: 'Product 4', price: 40, category: 'Fashion' },
  { name: 'Product 5', price: 50, category: 'Electronics' },
];
const filterBy = (property, value) => (product) => product[property] === value;
const filteredProducts = products.filter(filterBy('category', 'Electronics'));
console.log(filteredProducts);

Sie können auch mehrere Filter miteinander verketten, um beispielsweise nach mehreren Kriterien zu filtern:

const filteredProducts = 
products
.filter(filterBy('category', 'Electronics'))
.filter(filterBy('price', 30));
console.log(filteredProducts);

Abschluss

In diesem Beitrag haben wir das Grundkonzept von Funktionen höherer Ordnung besprochen und ein Beispiel dafür gegeben, wie sie in einem realistischen Szenario verwendet werden können. Wir haben auch hervorgehoben, wie Funktionen höherer Ordnung zum Filtern von Produkten basierend auf mehreren Kriterien verwendet werden können.

Vielen Dank fürs Lesen!

Ich hoffe, dass Sie damit ein besseres Verständnis der Funktionen höherer Ordnung und ihrer Anwendungsfälle in JavaScript erlangen.