函数式编程全都是关于如何把一个问题分解为一系列函数的。通常,函数会链在一起,互相嵌套, 来回传递,被视作头等公民。
好处:
百度百科 函数式编程
1.纯函数
含义:相同的输入,会得到相同的输出
slice 不会改变数组
splice会改变数组
纯函数是对数学上的“函数”的真实演绎,就是输入和输出的关系。它们思路简单也便于重用。 由于纯函数是完全独立的,它们更适合被一次又一次地使用。
参考http://www.jb51.net/article/73209.htm
2.高阶函数
高阶函数就是以其它函数为输入,或者返回一个函数为输出的函数。
例如
数组的map,reduce,forEach,filter,sort()
3.链式调用
常见例子
是jQuery直接返回this的方式,underscore的可选式的方式,和lodash惰性求值的方式。
最简单方式
1)返回this
function B(num){this.value=num||0}
B.prototype.add=function(x){
this.value+=x;
return this;}
B.prototype.redu=function(y){
this.value-=y;
return this;}
p=new B();
参考http://www.cnblogs.com/tarol/p/5336666.html
3.匿名函数
把函数作为头等对象的另一个好处是匿名函数。
就像名字暗示的那样,匿名函数就是没有名字的函数。实际不止这些。它允许了在现场定义临时逻辑的能力。 通常这带来的好处就是方便:如果一个函数只用一次,没有必要给它浪费一个变量名。
匿名函数例子
高阶函数配合匿名函数
function powersof(x){
return function(y){
return Math.pow(x,y);
}
}
var p=powersof(2);
console.log(p(1))
console.log(p(6))
后期:
柯里化
函数组合