猿问

如何避免错误 - function-name(...) 不是测验中的函数?

我想通过 codewars 的测验 - https://www.codewars.com/kata/53cf7e37e9876c35a60002c9/train/javascript,但我无法避免通过错误:“TypeError: add(...) is not a function”

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)))

如何避免此错误以通过测验?



智慧大石
浏览 95回答 1
1回答

尚方宝剑之说

那是关于add(1,2)(3)因为你得到错误,add函数返回一个值,通过这样做add(1,2)(3)你正在执行返回值add(1,2)并传递 a 3,这不是一个函数,所以错误已经被提出。执行语句应该是console.log(+curryPartial(add)(1,2)(3)) // not console.log(+curryPartial(add(1,2)(3)))
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答