高阶函数

原文链接:https://note.noxussj.top/?source=sifo

什么是高阶函数?

有两种情况都可以被定义为高阶函数,第一种是把函数作为参数传递给另外一个函数,第二种是把函数作为另一个函数的返回结果。就像我们平时调用函数,一般都是传递值类型或者对象和数组等参数,或者是函数返回结果是值类型或者是对象和数组,高阶函数就是把上面提到的值类型、对象、数组改为函数。

优点

函数作为参数,可以使我们这个函数变得更灵活

使用高阶函数的意义

抽象(封装)可以帮我们屏蔽细节,只需要关注与我们要实现的目标

高阶函数是用来抽象通用的问题

可以简化我们的代码


ES5、ES6 中常用的高阶函数

  • forEach
  • map
  • filter
  • every
  • some
  • find
  • findIndex
  • reduce
  • sort

基础案例

面向对象方式

    const array = [1, 2, 3, 4];    
    for (let i = 0; i < array.length; i++) {
      console.log(array[i]);
    }

高阶函数方式

    // 抽象循环功能
    function forEach(array, fn) {
      for (let i = 0; i < array.length; i++) {
        fn(array[i]);
      }
    }

    // 定义数据
    const arr = [1, 3, 4, 7, 8];
    
    // 调用函数,传入函数作为参数
    forEach(arr, (item) => {
      console.log(item);
    });

原文链接:https://note.noxussj.top/?source=sifo


菜园前端
19 声望2 粉丝