我想通过 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)))如何避免此错误以通过测验?
1 回答
尚方宝剑之说
那是关于
TA贡献1788条经验 获得超4个赞
那是关于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)))
添加回答
举报
0/150
提交
取消