javascript функция каррирования, передать функцию, которая передает более высокие параметры функции с каррированием - PullRequest
1 голос
/ 09 июля 2020

Я пытаюсь предоставить функцию myFunction параметру объекта с именем update, но я хочу, чтобы значения функции из update легко передавались (или «каррировались») в myFunction.

Я знаю, что могу это сделать

const object = {update: (item1, item2) => myFunction(myValue1, myValue2, item1, item2)}

Но я бы предпочел сделать что-то вроде const object = {update: myFunction(myValue1, myValue2)}, а в myFunction сделать что-то вроде const myFunction = (item1, item2) => (myValue1, myValue2) => { ... do something ... }.

Как я могу это сделать?

1 Ответ

0 голосов
/ 28 июля 2020

Javascript напрямую не поддерживает каррирование, например Haskell, но некоторые функциональные библиотеки могут быть полезны

, например. https://ramdajs.com/docs/#curry

Скажем, если исходная функция определена как myFunction(myValue1, myValue2, item1, item2) { ... }

, то const curriedMyFn = R.Curry(myFunction) можно использовать как

const object = {update: curriedMyFn(myValue1, myValue2)}

Теперь object.update - это myFunction, специализирующаяся на myValue1 и myValue2.

...