函数式编程

一、柯里化

(function () {

    var add = function (x) {
        return function (y) {
            return x + y;
        }
    };

    var a = add(1);
    console.log(a(2)); //3

})();

优点:实现了函数”暂存“,可以把一个变量一直放在函数里面。

举个例子,那上面代码来说,我要实现1+1,1+2,1+3,只需要

var addOne=add(1);
addOne(1); //1+1
addOne(2); //1+2
addOne(3); //1+3

二、组合化

(function () {

    var compose=function (f,g) {
        return function (x) {
            return f(g(x));
        }
    };

    var getHead=function (x) {return x[0]};
    var toUpperCase=function (x) {return x.toUpperCase();};

    var controlString=compose(getHead,toUpperCase);

    var str='meng';
    console.log(controlString(str));
})();

优点:实现不同功能的叠加。

原文地址:https://www.cnblogs.com/chenluomenggongzi/p/6343991.html