什么是高阶函数

可以返回其它函数的函数,和接受其它函数作为参数的函数,均被称之为高阶函数,是函数式语言的特点。

/**
 * Created by mao_siyu on 2018/11/14.
 * 高阶函数则是可以把函数作为参数,或是把函数作为返回值的函数
 */
function show(param) {
    console.log('---------------show------------')
    console.log(param)
}

/**
 * 把函数作为参数
 * @param callback
 */
function main(callback) {
    // 判断参数是否是 一个函数
    let bol = Object.prototype.toString.call(callback) === '[object Function]';
    // 如果不是函数 就抛出异常
    if (!bol) {
        throw '要求参数必须是一个函数!';
    }
    // 如果是函数 就执行这个函数
    callback('############--main--############');
}

main(show);

// ---------------show------------
// ############--main--############

// ==========================================================================

/**
 * 把函数作为返回值
 * @returns {Function}
 */
function main() {
    // 返回一个可以计算加法的匿名函数
    return function (a, b) {
        return a + b;
    }
}
// 把 计算加法的匿名函数, 赋给 add变量
let add = main();
// 执行计算加法的匿名函数
add(1, 2);
// 3
分类: JavaScript

毛巳煜

高级软件开发全栈架构师

工信部备案号:辽ICP备17016257号-2