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

学无止境,谦卑而行.
原文地址:https://www.cnblogs.com/wangyang0210/p/14540998.html