每天一道面试题——请实现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中...为扩展运算符

posted @ 2021-03-16 00:14  。思索  阅读(104)  评论(0编辑  收藏  举报