偏函数案例问题

问题描述

已知函数 fn 执行需要 3 个参数。请实现函数 partial,调用之后满足如下条件:
1、返回一个函数 result,该函数接受一个参数
2、执行 result(str3) ,返回的结果与 fn(str1, str2, str3) 一致

问题解决

本质上是偏函数的实现。

function partial(fn, str1, str2) {
    return function() {
        let arr = Array.prototype.slice.call(arguments, 0)
        return fn.apply(this, [str1, str2].concat(arr))
    }
}

函数柯里化也可以返回偏函数,达到参数复用的目的。

用户头像
登录后发表评论