Реализуйте функцию sum (a) (b) (c), используя обратные вызовы в JAVASCRIPT

1

Я попросил в интервью создать функцию, имеющую подпись, такую как sum (a) (b) (c) с использованием обратного вызова, так, как я решил, что это так:

function sum(a){
   return function(b){
      return function(c){
         return a+b+c;  
      }
   }
}

но интервьюер искал подход обратного вызова, который я не могу реализовать.

Заранее спасибо.

  • 0
    Концепция, которую вы ищете, называется карри . Попробуйте исследовать это, и если у вас есть проблемы с пониманием или реализацией, мы можем помочь вам здесь.
  • 0
    @ MátéSafranka Поправь меня, если я не прав, но разве вопрос не показывает пример карри?
Показать ещё 2 комментария
Теги:
callback

1 ответ

0

Вы можете использовать функцию callback для требуемой операции, например sum, которая принимает два операнда и массив для значений и функцию, которая возвращает себя.

Для получения окончательного значения вам необходимо реализовать метод toString, который возвращает окончательное значение.

function sum(a, b) {
    return a + b;
}

function partial(fn) {
    function f(v) {
         stack.push(v);
         if (stack.length === fn.length) {
             stack = [fn(...stack)];
         }
         return f;
    }
    f.toString = function () { return stack[0]; };
    
    var stack = [];
    return f;
}

console.log(partial(sum)(3)(4)(5));

Ещё вопросы

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