高阶函数

  • 1 柯里化

    柯里化是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。

    举个例子:
    柯里化前:

    function add(a, b) {
        return a + b;
    } // 执行 add 函数,一次传入两个参数即可
    add(10, 2) // 12

    柯里化后:

    var add = function(a) {
        return function(b) {
            return a + b;
         };
    };
    var addTen = add(10);
    addTen(2); // 12

    那么我们

  • 1 高阶函数定义

    高阶函数是指至少满足下列条件之一的函数:
    (1) 函数可以作为参数被传递;
    (2) 函数可以作为返回值输出。

    1.1 作为参数传递

    var appDiv = function (callback) {
    if(typeof callback === 'function'){
    callback();
    }
    }
    appDiv(function () {
    console.log('我是回调函数')
    })

    1.2 作为返回值

    单例模式
    var getSingle = function (fn) {
    var ret;
    return function () {
    return ret || (










    • 引言
    • 高阶函数
    • 函数作为参数传递
      • Array.prototype.map
        • 不使用高阶函数
        • 使用高阶函数
      • Array.prototype.filter
        • 不使用高阶函数
        • 使用高阶函数
      • Array.prototype.reduce
        • 不使用高阶函数
        • 使用高阶函数
          • 无 initialValue 值
          • 有 initialValue 值
    • 函数作为返回值输出
      • isType 函数
      • add 函数
    • 思考题
    • 参考文章
    • 文章穿梭机
    • 交流

    引言

    本期开始介绍 JavaScript 中的高阶函数,在 JavaScript 中,函数是一种特殊类型的对象,它们是 Function o

  • 引言

    上一节介绍了高阶函数的定义,并结合实例说明了使用高阶函数和不使用高阶函数的情况。后面几部分将结合实际应用场景介绍高阶函数的应用,本节先来聊聊函数柯里化,通过介绍其定义、比较常见的三种柯里化应用、并在最后实现一个通用的 currying 函数,带你认识完整的函数柯里化。

    有什么想法或者意见都可以在评论区留言,下图是本文的思维导图,高清思维导图和更多文章请看我的 Github。

    【进阶 6-2 期】深入高阶函数应用之柯里化

    柯里化

    定义

    函数柯里化又叫部分求值,维基百科中对柯里化 (Currying) 的定义为:

    在数学和计算机科学中,柯里化是一种将使用多个参数的函数转换成一系列使用一个参数的函数,并且返回接受余下的参数而且返回结果