函数式编程

2017-07-24  本文已影响20人  玄月府的小妖在debug

函数式编程全都是关于如何把一个问题分解为一系列函数的。通常,函数会链在一起,互相嵌套, 来回传递,被视作头等公民。
好处:
百度百科 函数式编程

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.匿名函数

把函数作为头等对象的另一个好处是匿名函数。
就像名字暗示的那样,匿名函数就是没有名字的函数。实际不止这些。它允许了在现场定义临时逻辑的能力。 通常这带来的好处就是方便:如果一个函数只用一次,没有必要给它浪费一个变量名。
匿名函数例子

Paste_Image.png

高阶函数配合匿名函数

function powersof(x){
  return function(y){
    return Math.pow(x,y);
  }
}
var p=powersof(2);
console.log(p(1))
console.log(p(6))

后期:
柯里化
函数组合

上一篇 下一篇

猜你喜欢

热点阅读