与函数式编程相对应的是命令式编程,命令式编程就是代码从上到下依次执行。例如以下代码:
<!-- 命令式编程 代码从上到下按照次序执行 --> <!-- 数组n的每个元素的值都加1 --> <script type="text/javascript"> var n = [1,2,3,4,5]; for(var i=0;i<n.length;i++){ n[i] = n[i]+1; } for(var i=0;i<n.length;i++){ console.log(n[i]); } </script>
以上代码实现数组n的每个元素的值都加1.运算结果如下:
命令式编程的代码不够灵活且不能重用.
函数式编程,可以将数据相加单独写成为一个函数。代码如下:
<!-- 函数式编程 --> <script type="text/javascript"> //相乘的方法 function multiply(x,y) { return x*y; } //相加的方法 function plus(x,y) { return x+y; } //遍历数组的方法 function travers(n,fun,num) { for(var i=0;i<n.length;i++) { n[i] = fun(n[i],num); } } </script>
以上代码写了三个函数,分别实现数据相乘,数据相加和遍历数组的方法,在遍历数组的同时,如果调用相加的方法,那么数组的每个元素就会加一个数,如果调用相乘的方法,那么数组的每个元素就会乘以一个数。
数组的每个元素加1,以下代码实现:
<script type="text/javascript"> var n = [1,2,3,4,5]; travers(n,plus,1); //遍历数组 调用plus函数 数组的每个元素+1 for(var i=0;i<n.length;i++){ console.log(n[i]); } </script>
数组的每个元素乘以2,以下代码实现:
<script type="text/javascript"> var n = [1,2,3,4,5]; travers(n,multiply,2); //遍历数组 调用mulyiply函数 数组的每个元素*2 for(var i=0;i<n.length;i++){ console.log(n[i]); } </script>
函数式编程:将程序分解成为一些可重用,更易于理解的部分,将这些函数组合起来,成为一个程序,只需要更改其中一个部分,可以让程序实现不同的功能。
0条评论
点击登录参与评论