25-高阶函数

高阶函数

高阶函数的概念

当 函数 A 接收函数 B 作为参数,或者把函数 C 作为返回值输出时,我们称 函数 A 为高阶函数。

通俗来说,高阶函数是 对其他函数进行操作 的函数。

高阶函数举例1:把其他函数作为参数

  1. function fn1(a, b, callback) {
  2. console.log(a + b);
  3. // 执行完上面的 console.log() 语句之后,再执行下面这个 callback 函数。也就是说,这个 callback 函数是最后执行的。
  4. callback && callback();
  5. }
  6. fn1(10, 20, function () {
  7. console.log('我是最后执行的函数');
  8. });

打印结果:

  1. 30
  2. 我是最后执行的函数

高阶函数举例2:把其他区函数作为返回值

  1. function fn1() {
  2. let a = 20;
  3. return function () {
  4. console.log(a);
  5. };
  6. }
  7. const foo = fn1(); // 执行 fn1() 之后,会得到一个返回值。这个返回值是函数
  8. foo();

上面的代码,产生了闭包现象。关于闭包,详见下一篇文章《JavaScript基础/闭包.md》。