Maison > interface Web > js tutoriel > Comment le curry fonctionne-t-il avec plusieurs fonctions fléchées en JavaScript ?

Comment le curry fonctionne-t-il avec plusieurs fonctions fléchées en JavaScript ?

Linda Hamilton
Libérer: 2024-12-21 06:48:12
original
369 Les gens l'ont consulté

How Does Currying Work with Multiple Arrow Functions in JavaScript?

Currying avec plusieurs fonctions de flèches en JavaScript

Vous pouvez rencontrer du code comme celui-ci dans les applications React :

handleChange = field => e => {
  e.preventDefault();
  /// Do something here
}
Copier après la connexion

Cette syntaxe déroutante représente ce qu'on appelle un curry fonction.

Qu'est-ce que le Currying ?

Le Currying est une technique qui permet de définir une fonction en plusieurs parties. Par exemple :

const add = x => y => x + y
Copier après la connexion

C'est équivalent à la fonction traditionnelle :

const add = function (x) {
  return function (y) {
    return x + y
  }
}
Copier après la connexion

Se concentrer sur la valeur de retour

Dans les fonctions fléchées, la valeur de retour est représentée par :

const f = someParam => returnValue
Copier après la connexion

Par conséquent, notre fonction add renvoie un function :

const add = x => (y => x + y)
Copier après la connexion

Appel de la fonction :

add(2)(3)  // returns 5
Copier après la connexion

Cela se produit car l'appel de la fonction externe renvoie la fonction interne.

Comprendre le code handleChange

Appliquer ceci au handleChange code :

handleChange = function(field) {
  return function(e) {
    e.preventDefault()
    // Do something here
  };
};
Copier après la connexion

Étant donné que les fonctions fléchées préservent le contexte, cela ressemble effectivement à :

handleChange = function(field) {
  return function(e) {
    e.preventDefault()
    // Do something here
  }.bind(this)
}.bind(this)
Copier après la connexion

Ce code crée une fonction pour un champ spécifique. Dans React, il est utilisé pour configurer des écouteurs pour divers champs de saisie sans dupliquer le code.

Fonctions fléchées multiples

Plusieurs fonctions fléchées peuvent être séquencées, permettant des fonctionnalités surprenantes comme ceci :

const $ = x => k =>
  $ (k(x))
Copier après la connexion

Cette fonction curry, appelée $ (comme un jeu de mots sur la syntaxe Lisp), semble accepter un nombre arbitraire de arguments, faisant abstraction du concept d'arité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal