Heim > Web-Frontend > js-Tutorial > Wie funktioniert Currying mit mehreren Pfeilfunktionen in JavaScript?

Wie funktioniert Currying mit mehreren Pfeilfunktionen in JavaScript?

Linda Hamilton
Freigeben: 2024-12-21 06:48:12
Original
370 Leute haben es durchsucht

How Does Currying Work with Multiple Arrow Functions in JavaScript?

Currying mit mehreren Pfeilfunktionen in JavaScript

In React-Anwendungen kann es sein, dass Sie auf Code wie diesen stoßen:

handleChange = field => e => {
  e.preventDefault();
  /// Do something here
}
Nach dem Login kopieren

Diese rätselhafte Syntax stellt das sogenannte Curry dar Funktion.

Was ist Currying?

Currying ist eine Technik, die es ermöglicht, eine Funktion in Teilen zu definieren. Zum Beispiel:

const add = x => y => x + y
Nach dem Login kopieren

Dies entspricht der herkömmlichen Funktion:

const add = function (x) {
  return function (y) {
    return x + y
  }
}
Nach dem Login kopieren

Fokus auf den Rückgabewert

In Pfeilfunktionen Der Rückgabewert wird wie folgt dargestellt:

const f = someParam => returnValue
Nach dem Login kopieren

Daher gibt unsere Add-Funktion a zurück Funktion:

const add = x => (y => x + y)
Nach dem Login kopieren

Aufrufen der Funktion:

add(2)(3)  // returns 5
Nach dem Login kopieren

Dies geschieht, weil der äußere Funktionsaufruf die innere Funktion zurückgibt.

Den handleChange-Code verstehen

Anwenden auf die handleChange Code:

handleChange = function(field) {
  return function(e) {
    e.preventDefault()
    // Do something here
  };
};
Nach dem Login kopieren

Da Pfeilfunktionen den Kontext bewahren, sieht es effektiv so aus:

handleChange = function(field) {
  return function(e) {
    e.preventDefault()
    // Do something here
  }.bind(this)
}.bind(this)
Nach dem Login kopieren

Dieser Code erstellt eine Funktion für ein bestimmtes Feld. In React wird es verwendet, um Listener für verschiedene Eingabefelder einzurichten, ohne Code zu duplizieren.

Mehrere Pfeilfunktionen

Mehrere Pfeilfunktionen können sequenziert werden, was überraschende Funktionen ermöglicht, z dies:

const $ = x => k =>
  $ (k(x))
Nach dem Login kopieren

Diese Curry-Funktion namens $ (als Wortspiel mit der Lisp-Syntax) scheint eine beliebige Funktion zu akzeptieren Anzahl der Argumente, die das Konzept der Arität abstrahieren.

Das obige ist der detaillierte Inhalt vonWie funktioniert Currying mit mehreren Pfeilfunktionen in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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