普通函数
function fn(a, b) {
return a + b
}
console.log(fn(3, 5))//8
//let sum = (a, b) => { return a + b }
let sum=(a,b)=>a+b
console.log(sum(5, 9))//14
柯里化函数
通俗来说,每次调用时,只接收一部分参数,并在内部返回一个函数,然后继续调用剩余的参数,又返回一个函数,以此类推,直到最后。
let getSum = x => y => x + y
console.log(getSum(1)(2))//3
let add = x => y => z => x + y + z
console.log(add(3)(4)(5))//12
console.log(add(1, 2)(3)(4, 5, 6))//8
柯里化函数原理(利用了闭包的原理)
function multilRes(x) {
return function (y) {
return function (z) {
return x * y * z
}
}
}
console.log(multilRes(2)(3)(4))//24
使用场景
- 参数复用
- 延迟执行
- 动态创建