一、什么是函数柯里化
函数柯里化就是我们给一个函数传入一部分参数,此时就会返回一个函数来接收剩余的参数。
二、简单的柯里化的实现没有柯里化实现的案例
将其转化为柯里化的案例
上述代码可简写为
三、函数柯里化的好处
我们希望处理函数时,希望函数功能尽可能单一。如下面代码所示,我们希望第一个参数+2
,第二个参数*2
,第三个参数** 2
,最后再相加,此时我们可以使用函数的柯里化。
四、自动柯里化
function myCurried(fn) {
return function curry(...args1) {
if (args1.length >= fn.length) {
return fn.call(null, ...args1)
} else {
return function (...args2) {
return curry.apply(null, [...args1, ...args2])
}
}
}
}
function sum(a, b, c, d, e) {
return a + b + c + d + e
}
let resFunc = myCurried(sum)
console.log(resFunc(1,3,4)(1)(23))
//解析:
//1、这里的fn.length获取的是函数传入参数的长度
//2、这里使用递归的思想
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_47450807/article/details/123152265
内容来源于网络,如有侵权,请联系作者删除!