1、函数式编程-高阶函数。

高阶函数。

在通常的语言中,函数的参数和返回值都只接受基本的数据类型,或是对象引用。

function foo(x){
   return x;
}

高阶函数则是可以吧函数作为参数,或是将函数作为返回的函数。

function foo(x){
   return function (){
      return x
   }
 }

后续传递风格的程序编写将函数的业务重点从返回值转移到了回调函数中:

function foo(x, bar){
  return bar(x);
}

以上面的foo方法传入bar的参数不同,则可以得到不同的结果。

一个经典的例子便是数组的sort()方法,他是一个货真价实的高阶函数,可以接受一个方法作为参数参与运算排序。

var arr = [40, 100, 1, 5, 25 ,10];
arr.sort(function(a, b){
   return a - b;
});
//[100, 40, 25, 10, 5, 1]

高阶函数具有很强的灵活性,结合Node提供的最基本的额事件模块可以看到,事件的处理方式正是基于高阶函数的特性来完成的。

var emitter = new events.EventEmitter();
emitter.on('event_foo', function(){ 
    //TODO
 }) 

在自定义事件实例中,通过为相同事件注册不同的回调函数,可以很灵活地处理业务逻辑。

高阶函数在JavaScript中比比皆是,es5中提供的一些数组方法,map()、every()、some()、sort()、forEach() 、reduce()、filter()十分典型。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容