javascript函数式编程

javascript中函数是第一类对象,不依赖任何其他对象独立存在。函数式编程其实是一种编程思想,它追求更细的粒度,将应用拆分成一组组极小的单元函数,组合调用操作数据流,追求的是更简洁、可预测、高复用、易测试。

 

纯函数

相同的输入得到相同的输出,不依赖且不影响外界环境也不产生任何副作用,输出完全取决于输入。

优势:

  • 完全独立,与外部解耦;
  • 高度可复用,在任意上下文,任意时间线上,都可执行并且保证结果稳定;
  • 可测试性极强;

函数复合

将多个函数进行组合后调用,可以实现将一个个函数单元进行组合,达成最后的目标

优势:

  • 隐藏中间参数,不需要临时变量,避免了这个环节的出错几率;
  • 只需关注每个纯函数单元的稳定,不再需要关注命名,传递,调用等;
  • 可复用性强,任何一个函数单元都可被任意复用和组合

高阶函数

以函数为参数,返回一个新的增强函数 的一类函数

  • 优势:

    • 便于维护,易于扩展,回掉函数可以单独抽离到外面来。
    • 将一系列单元函数列表组合成功能更强大的函数

函数柯里化

 只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数。

 用处: 

  • 延迟运行
  • 参数复用
  • 提前确认

可参考  https://www.jianshu.com/p/2975c25e4d71

 

posted @ 2019-08-22 17:29  ccj9697  阅读(87)  评论(0编辑  收藏  举报