Javascript中的高阶函数介绍

Posted 古兰精

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript中的高阶函数介绍相关的知识,希望对你有一定的参考价值。

  高阶函数:高阶看上去就像是一种先进的编程技术的一个深奥术语,一开始我看到的时候我也这样认为的。

Javascript的高阶函数

  然而,高阶函数只是将函数作为参数或返回值的函数。以下面的Hello,World作为一个简单的例子。

var Moqi = function(p1){
    this.add = function (p2){
        return p1 +   + p2;
    };
    return add;
};
//我们便可以这样使用这个函数
console.log(Moqi(Hello)(World));

  或许这个过程有点混乱,看看详细一点的。

typeof Moqi(Hello)
//"function"
Moqi(Hello)
//function (p2){
//    return p1 + ‘ ‘ + p2;
//}

  也就是说实际上Moqi(‘Hello‘)是一个函数,Moqi(‘Hello‘)

var m = Moqi(Hello)       
m(World)
//"Hello,World"

  从上面的情况来看,高阶函数可以使代码更简洁、高效。自然而然地我们也可以创建下面这样一个函数:

var Moqi = function(p1){
    return  function (p2){
        return function(p3){
            return p1 + , + p2 +   +p3;
        }
    };
};
Moqi(Hello)(World)(Phodal)
//"Hello,World Phodal"

还原高阶函数

  越来越复杂,需要引入高阶函数抽象的信号是出现重复或者相似的代码。然后,我们先一步步还原到之前的函数:

var Moqi = function(p1){
     this.add =  function (p2){
        return function(p3){
            return p1 + , + p2 +   +p3;
        }
    };
    return this.add;
};

  接着再创建一个新的函数

var Moqi = function(p1){
     this.add =  function (p2){
        this.add1 = function(p3){
            return p1 + , + p2 +   +p3;
        };
        return this.add1;
    };
    return this.add;
};

  使用javascript中的call方法,就会有:

var Moqi = function(p1){
    var self = this;
    function fd(p2) {
        this.add1 = function (p3) {
            return p1 + , + p2 +   + p3;
        };
    }

    self.add =  function (p2){
        fd.call(this, p2);
        return this.add1;
    };
    return self.add;
};

高阶函数实例

add = function(a,b){
    return a + b;
};

function math(func,array){
    return func(array[0],array[1]);
}

console.log(math(add,[1,2]));

//math(add,[1,2])
//3

 

以上是关于Javascript中的高阶函数介绍的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript中的高阶函数

js数组高阶方法reduce经典用法代码分享

js数组高阶方法reduce经典用法代码分享

JavaScript 中的高阶函数

前端面试 JavaScript— 什么是高阶函数?数组中的高阶函数有哪些?

前端面试 JavaScript— 什么是高阶函数?数组中的高阶函数有哪些?