Передача аргументов в функцию внутри функции - JavaScript

1

Я пытаюсь передать аргумент функции внутри функции;

function add() {
  let x = arguments[0];

  function s(num) {
    return num + x;
  }
}

add(2)(3) //second argument to be passed to 'function s'.

поэтому им нужно, чтобы звонок вернулся 5.

Каков наилучший подход к этому? заранее спасибо.

Теги:

1 ответ

2
Лучший ответ

Currying - это название конструкции, которая позволяет частично применять аргументы функции. Это означает, что вместо передачи нескольких аргументов функции и ожиданий конечного результата вы можете передать подмножество этих аргументов и вернуть функцию, ожидающую остальных средств.

Как уже указывал @KevBot, ваш пример пропускает возврат второй функции и будет:

function add() {
  let x = arguments[0];

  return function s(num) {
    return num + x;
  }
}

add(2)(3);

ES6 Curryed Hello World:

curryedHelloWorld = (greeting) => (name) => '${greeting}, ${name}!';
curryedHelloWorld("Hello")("Tygar");

Вы даже можете раскрутить пример curryedHelloWorld, обратившись к нему наоборот:

helloworld = (greeting, name) => curryedHelloWorld(greeting)(name);
helloworld("Hello", "Tygar");
  • 0
    Поиск по [javascript] currying возвращает более 1000 результатов, наверняка один годится как дубликат? Мне не ясно, хочет ли ОП карри или цепочки. Может быть, Variadic карри функция суммы ?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню