高阶函数

280 阅读1分钟

相信很多人在面试的时候都会被问到:什么是高阶函数。那么我们就来看看什么是高阶函数。

高阶函数的英文名叫 Higher-Order Function,react中高阶组件的Higher-Order Component 本质上就是高阶函数

什么是高阶函数

《javascript中的函数式编程》中的函数式编程即高阶函数的出处,高阶函数是函数式编程的基本技术。 常见的高阶函数的类型有:

1、一个函数的参数是一个函数被成为高阶函数(回调函数)

2、一个函数执行结果返回一个函数被成为高阶函数常见的有函数的柯里化

函数在js中属于一等公民,可以被赋值给变量,被变量引用,这样即使函数作为参数,在函数之间传递。

js拥有函数式编程的能力,有人形容js是一门“一切皆对象”的语言。

高阶函数面试题分享:在不修改say函数的情况下,先执行befor函数
const say=(...arg)=>{
    console.log('中奖:'+arg)
}

//方法一 所有的函数原型都绑上了before属性
Function.prototype.before=function(cb){//before就是一个高阶函数
    return (...arg)=>{
        cb()
        this(...arg)
    }
}
//方法二 仅在当前函数上绑定before属性
say.before=function(cb){
    return (...arg)=>{//使用箭头函数无this指向
        cb()
        this(...arg)
    }
}

let outSay=say.before(()=>{//在执行say执行执行做操作
    console.log('before开奖')
})
outSay('小明','小红','小黑')

高阶函数就分享到此了。