前两天写博客时碰到了回调函数,涉及到函数式编程的概念,自己以前也没遇到过,今天有时间看了一下,随便写一下感想,希望大神指教。
函数式编程说白了就是一种编程规范,或者是js编程需要遵守的协议,
借鉴一下:
- 使用纯函数而不是使用共享状态和副作用
- 让可变数据成为不可变的
- 用函数复合替代命令控制流
- 使用高阶函数来操作许多数据类型,创建通用、可复用功能取代只是操作
- 集中的数据的方法。
- 使用声明式而不是命令式代码(关注做什么,而不是如何做)
- 使用表达式替代语句
- 使用容器与高阶函数替代多态
解释:
纯函数就是给它同样的输入,总是返回同样的结果,并且
没有副作用
不可变性就是创建之后不可以改变。例如创建一个对象,依然可以改变它内部的属性,就是可变的
函数复合就是将控制流写入到函数中,而用函数作回调函数使用,精简代码。
等等
参考:http://www.zcfy.cc/article/master-the-javascript-interview-what-is-functional-programming-2221.html
http://www.ruanyifeng.com/blog/2012/04/functional_programming.html