广

JavaScript

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    浅谈javascript函数式编程

    2018-04-08 09:02:51 次阅读 稿源:互联网
    零七广告

    函数式编程,属于编程范式的一种

    1 函数是第一公民,可以返回值,也可以作为其他函数的参数

    //console是一个函数function con(v){ console.log(v)}// execute 也是一个函数function execute(fn){ fn(1)}//将con函数作为参数传进execute函数execute(con) // 1

    2 接近自然语言的写法

      晓池吃完饭然后就去洗澡 可以表现为eat().bathe()

    // 吃饭函数function eat(eat){ this.e = eat; return this;}// 洗澡函数function bathe(bathe){ this.b = bathe; return this;}var person = eat("晓池在吃饭").bathe("晓池去洗澡了");console.log(person.e) // 晓池在吃饭console.log(person.b) // 晓池去洗澡了

     3 函数式编程的特性

      匿名函数,即没有名字的函数,在函数式编程中很常见,有时候我们需要通过它(不复用的函数)来完成部分功能,下面我们通过定义一个each函数来了解一下:

    // 自定义each函数function each(arr,func){ var length = arr.length; for(var i = 0 ;i <length; i++){  func(i,arr[i]) }}// 执行each函数,传进一个匿名函数作为该函数的参数each([1,2,3],function(i,v){ console.log('key:' + i + ',value:' +v);});//输出内容//key:0,value:1//key:1,value:2//key:2,value:3

     柯里化:柯里化是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术

    //定义add函数,并返回一个函数function add(num){ return function(x){   return num + x; }}add1 = add(1)console.log(add1(3)) // 4

    高阶函数:有函数作为参数或函数内部返回一个函数,都可称该函数为高阶函数 ,以上的each函数即算是高阶函数的一种。

    结束语

    实际的应用中,不会囿于函数式或者面向对象,通常是两者混合使用,事实上,很多主流的面向对象语言都在不断的完善自己,比如加入一些函数式编程语言的特征等,JavaScript 中,这两者得到了良好的结合,代码不但可以非常简单,优美,而且更易于调试。

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告