# Curry实现
function add(a, b){ return a + b }
function curry(fn) { }
curry(add)(a)(b) => 3
1
2
3
4
5
2
3
4
5
实现
function curry(fn) {
let length = fn.length
let args = []
return function inner() {
args.push(...arguments)
if (args.length < length) {
return inner
} else {
return fn.apply(this,args)
}
}
}
function add(a,b){return a+b}
console.log(curry(add)(1)(2))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16