currying又称函数‘柯里化’
curry 的概念:只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数
先看一个简单例子,add
函数接受 2 个参数(或者多个),addX
函数接受 1 个参数。
换而言之,所谓"柯里化",就是把一个多参数的函数,转化为单参数函数。将一个函数转换为一个新的函数
// 非柯里化
function add(x, y, z) {
return x + y + z; // 普通函数求和
}
add(1, 2, 3) === 6; // true
// 柯里化
function addX(y) { // 第一层函数
return function(x) { // 第二层return 返回一个函数接收一个X,此函数调用后返回第三层函数
return function(z) { // 第三层函数接收z,返回x+y+z的总和
return x + y + z;
};
}
}
addX(2); // 返回 function 并接收一个X
addX(2)(1); // 返回 function 并接收一个z
addX(2)(1)(3) == 6; // true
柯里化的好处
我能想到的是:
- 代码复用,减少维护成本
- 尽可能的函数化,便于阅读
"函数式编程"是一种"编程范式"(programming paradigm),也就是如何编写程序的方法论。
这只是一个概念,记住就行
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。