首页 > 编程语言 > 详细

Javascript中的高阶函数介绍

时间:2018-01-27 22:55:32      阅读:227      评论:0      收藏:0      [点我收藏+]

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

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中的高阶函数介绍

原文:https://www.cnblogs.com/goloving/p/8367379.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!