这是我参与「 第五届青训营 」伴学笔记创作活动的第 11 天 柯⾥化概念的理解
- 柯⾥化也是属于函数式编程⾥⾯⼀个⾮常重要的概念 是⼀种关于函数的⾼阶技术 它不仅被⽤于 JavaScript,还被⽤于其他编程语⾔
- 维基百科的解释: 在计算机科学中,柯⾥化(英语:Currying),⼜译为卡瑞化或加⾥化; 是把接收多个参数的函数,变成接受⼀个单⼀参数(最初函数的第⼀个参数)的函 数,并且返回接受余下的参数,⽽且返回结果的新函数的技术 柯⾥化声称 “如果你固定某些参数,你将得到接受余下参数的⼀个函数”
- 总结: 只传递给函数⼀部分参数来调⽤它,让它返回⼀个函数去处理剩余的参数 这个过程就称之为柯⾥化
- 柯⾥化
⼀、柯⾥化概念的理解
-
柯⾥化也是属于函数式编程⾥⾯⼀个⾮常重要的概念 是⼀种关于函数的⾼阶技术 它不仅被⽤于 JavaScript,还被⽤于其他编程语⾔
-
维基百科的解释: 在计算机科学中,柯⾥化(英语:Currying),⼜译为卡瑞化或加⾥化; 是把接收多个参数的函数,变成接受⼀个单⼀参数(最初函数的第⼀个参数)的函 数,并且返回接受余下的参数,⽽且返回结果的新函数的技术 柯⾥化声称 “如果你固定某些参数,你将得到接受余下参数的⼀个函数”
-
总结: 只传递给函数⼀部分参数来调⽤它,让它返回⼀个函数去处理剩余的参数 这个过程就称之为柯⾥化
-
柯⾥化是⼀种函数的转换,将⼀个函数从可调⽤的 f(a, b,c) 转换为可调⽤的 f(a)(b)(c)柯⾥化不会调⽤函数。它只是对函数进⾏转换
-
//未柯⾥化的函数
function add1(x, y, z) {
return x + y + z } console.log(add1(10, 20, 30))
//柯⾥化处理的函数
function add2(x) {
return function(y) {
return function(z) {
return x + y + z }
}
}
console.log(add2(10)(20)(30))
//代码优化
const add3 = x => y => z => x + y + z
console.log(add3(10)(20)(30))