# 高阶函数
- 如果函数符合下面规范的任意一个,那该函数就称之为高阶函数
1、若A函数,接收的参数是一个函数,那么A就是高阶函数。
2、若A函数,调用的返回值是一个函数,那么A是高阶函数。
常见的高阶函数:Promise、setTimeout、arr.map()等等
例子:
1、接收参数是函数的
代码语言:javascript复制function add(a,b,f){
return f(a) f(b)
}
let num = add(2,-2,Math.abs)
console.log(num)//4
2、返回参数是函数的
代码语言:javascript复制let arr = [1,2,3,4,5]
let newArr = arr.map(
function f(a) {
return a * a
})
console.log(newArr)//[1,4,9,16,25]
# 函数柯里化
- 定义:通过函数的调用继返回函数的方式,实现多次接收参数最后进行统一处理函数的编码形式。
例子:
代码语言:javascript复制function sum(a) {
return(b)=>{
return(c)=>{
return a b c
}
}
}
const res = sum(1)(2)(3)