与函数式编程相对应的是命令式编程,命令式编程就是代码从上到下依次执行。例如以下代码:
<!-- 命令式编程 代码从上到下按照次序执行 -->
<!-- 数组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条评论
点击登录参与评论