Как избежать ошибки - имя-функции (...) не является функцией в викторине? - PullRequest
0 голосов
/ 21 июня 2020

Я хочу пройти тест из кодовых войн - https://www.codewars.com/kata/53cf7e37e9876c35a60002c9/train/javascript, но я не могу избежать передачи ошибки: «TypeError: add (...) не является функцией»

function curryPartial(){
  let args= [...arguments]
  let fn = args[0]
  console.log(fn.length)
  function cur(){
    let argsCur= [...arguments]
    return curryPartial(...args,...argsCur)
  }
  cur.valueOf = ()=>{
    //return args.reduce((a,b)=>a+b)
    // console.log(...args)
    // const res = +fn(...args.slice(1))
    // return res
  }
  return cur

}
function add(a, b, c) {
  return a + b + c;
}
console.log(+curryPartial(add(1,2)(3)))

Как мне избежать этой ошибки, чтобы пройти тест?

1 Ответ

3 голосов
/ 21 июня 2020

Это примерно add(1,2)(3)

Поскольку вы получаете ошибки, функция add возвращает значение, выполняя add(1,2)(3), вы выполняете возвращаемое значение add(1,2) с передачей 3, который не является функцией, поэтому возникла ошибка.

оператор выполнения должен быть

console.log(+curryPartial(add)(1,2)(3))
// not
console.log(+curryPartial(add(1,2)(3)))

обратите внимание на пару скобок

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