函数式编程

1.面向对象编程:

把现实对象抽象成具体的类或对象,通过封装,继承,多态实现对现实事物的描述。

2.函数式编程:

把现实事物之间的关系抽象成函数映射关系,如 f = f(x);

3.纯函数:

相同 的 输入始终有相同的输出

4.函数一等公民

a.函数作为变量存储
b.函数作为参数传递
c.函数作为返回值返回

其中,b,c属于高阶函数

5.高阶函数

a.函数作为参数传递 【实践中应用】
```
var map = (array, fn) => {
     let results = [];
     for (let item of array) {
          results.push(fn(item));
     }
     return results;
}
var array = [1, 2, 4, 6, 5, 7];
var res = map(array, item => item * 2);
console.log(res); //[ 2, 4, 8, 12, 10, 14 ]

```
b.函数作为返回值返回 【常见有闭包】
//once函数
function once () {
    let done = false;
    let msg = 'this is a closure';
    let count = 0;
    return function() {
        if (!done) {
            done = true;
            // logic
            console.log(msg);
            console.log(++count);
        }
    }
}

let closureFn = once();
closureFn(); 
//this is a closure     
//1
closureFn();
//无打印
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容