持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情
题外话
这个疫情啊,真滴是服气了,居家快一个月了,居家不是办公就是做饭,脑子都快麻木了,为了活跃自己的大脑,也为了帮助大家增长知识,我给大家分享一点冷知识,嘿嘿嘿……
冷知识:世界上所有的北极熊全部都属于“左撇子”,这主要是受北极熊基因的影响。
咳咳~进入正题吧
开始
在介绍函数柯里化之前,我们先了解了什么是JavaScript纯函数,关于JavaScript纯函数的介绍在上一篇:函数柯里化,下面开始说一说函数柯里化。
函数柯里化
在维基百科中,是这样介绍函数柯里化的
- 在计算机科学中,柯里化又译为卡瑞化或加里化。
- 是把接收多个参数的函数,变成接收一个单一的参数(最初函数的第一个参数)的函数,并且返回接受余下的参数,而且返回结果的新函数的技术。
- 柯里化声称如果你固定某些参数,你将得到接受余下参数的一个函数。
我们可以理解为,我们偶一个函数需要接收4个参数,但是我们每次只给函数传入一个参数,但是执行这个函数4次,以此来完成函数的传入。简单总结一下就是,只传递给函数一部分参数来调用它,让它返回一个函数去处理剩余的参数,这个过程就称为柯里化。
柯里化案例
这里我们将一个函数柯里化
function foo(a, b, c, d) {
return a + b + c + d
}
console.log(foo(10,20,30,40));
上面这段代码如果进行柯里化,就会变成下面这段代码
function fn(a) {
return function(b) {
return function(c) {
return function(d) {
return a + b + c + d
}
}
}
}
console.log(fn(10)(20)(30)(40));
我们也可以使用ES6提供的箭头函数再次简化我们柯里化后的代码
var sum = x => y => z =>{
return x + y + z
}
console.log(sum(10)(20)(30));
知道什么是柯里化之后,我们一定会好奇,柯里化能给我们带来什么呢?什么时候我们需要将函数进行柯里化呢?我们就需要了解一下柯里化的一些特性。
柯里化特性
- 单一职责
- 逻辑的复用
关于柯里化的一些介绍今天就介绍到这里,下一篇我将根据柯里化的特性进行详细的解释