每天一道面试题——请实现add(1,2)(3)【二】
前言
考点: 函数柯里化
每天一道面试题,以后只更新于微信订阅号"夜雨成诗",点击右面的扫码添加即可
内容
题目
请实现add(1,2)(3)
答案
function add (...args) {
return args.reduce((a, b) => a + b)
}
function currying (fn) {
let args = []
return function temp (...newArgs) {
if (newArgs.length) {
args = [...args,...newArgs]
return temp
} else {
let val = fn.apply(this, args)
args = []
return val
}
}
}
...args中...为扩展运算符
学无止境,谦卑而行.