# 柯里化函数 Currying Function
柯里化是把接受多个参数的函数变换成接受一个 单一参数的函数 并且返回接受余下的参数而且返回结果的新函数的技术
# 柯里化函数衍化
通过一个函数实现三个数的累加
function add(a, b, c) { return a + b + c; } add(11, 22, 33);
1
2
3
4通过 柯里化函数 实现
curryAdd(11)(22)(33);
1我们需要将普通函数
add()
变为 柯里化函数curryAdd()
function add(a, b, c) { return a + b + c; } // add(11, 22, 33); // 自动变为柯里化函数 function curryFn(fn) { function recordFn(...argus) { if (argus.length >= fn.length) { return fn(...argus); } else { return function (...newArgus) { return recordFn(...argus.concat(newArgus)); }; } } return recordFn; } let CurryAdd = curryFn(add); CurryAdd(11)(22)(33); CurryAdd(11, 22)(33);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24柯里化弊端 因为使用闭包 所以 浪费内存