WEB开发网
开发学院网页设计JavaScript JavaScript 中的函数式编程实践 阅读

JavaScript 中的函数式编程实践

 2010-06-23 00:00:00 来源:WEB开发网   
核心提示: 运行此段代码,得到如下结果:631如果要完全模拟函数式编码的风格,JavaScript 中的函数式编程实践(5),我们可以定义一些诸如:清单 6. 一些简单的函数抽象functionadd(a,b){returna+b;}functionsub(a,b){returna-b;}functionm

运行此段代码,得到如下结果:

 6 
 31 

如果要完全模拟函数式编码的风格,我们可以定义一些诸如:

清单 6. 一些简单的函数抽象

 function add(a, b){ return a+b; } 
 function sub(a, b){ return a-b; } 
 function mul(a, b){ return a*b; } 
 function div(a, b){ return a/b; } 
 function rem(a, b){ return a%b; } 
 function inc(x){ return x + 1; } 
 function dec(x){ return x - 1; } 
 function equal(a, b){ return a==b; } 
 function great(a, b){ return a>b; } 
 function less(a, b){ return a<b; } 

这样的小函数以及谓词,那样我们写出的代码就更容易被有函数式编程经验的人所接受:

清单 7. 函数式编程风格

 // 修改之前的代码 
 function factorial(n){ 
 if (n == 1){ 
 return 1; 
 } else { 
 return factorial(n - 1) * n; 
 } 
 } 
 
 // 更接近“函数式”编程风格的代码 
 function factorial(n){ 
   if (equal(n, 1)){ 
     return 1; 
  } else { 
     return mul(n, factorial(dec(n))); 
  } 
 } 

闭包及其使用

闭包是一个很有趣的主题,当在一个函数 outter 内部定义另一个函数 inner,而 inner 又引用了 outter 作用域内的变量,在 outter 之外使用 inner 函数,则形成了闭包。描述起来虽然比较复杂,在实际编程中却经常无意的使用了闭包特性。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:JavaScript 函数 编程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接