Web前端之路Web 前端开发

高阶函数

2018-05-28  本文已影响19人  小编

维基百科这样描述:

高阶函数是至少满足下列一个条件的函数:

  • 接受一个或多个函数作为输入
  • 输出一个函数

简言之,一个函数可以将其他函数作为参数或者返回值是函数,这个函数就是高阶函数。

JavaScript中的高阶函数


以上部分的高阶函数是将函数作为输入,当然还可以将函数作为结果值返回。

function lazy_sum(arr) {
    var sum = function () {
        return arr.reduce(function (x, y) {
            return x + y;
        });
    }
    return sum;
}

var f = lazy_sum([1, 2, 3, 4, 5]); 

f(); // 15

当调用lazy_sum函数时,返回的是内层的sum函数。

在这个实例中,引出了另外一个概念:闭包

在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。运行时,一旦外部的 函数被执行,一个闭包就形成了,闭包中包含了内部函数的代码,以及所需外部函数中的变量的引用。

上一篇下一篇

猜你喜欢

热点阅读