关闭

js函数式编程-函数合并

时间: 2019-02-17阅读: 1287标签: 函数
函数编程的函数组合:两个纯函数组合之后返回了一个新函数
var compose = function(f,g) {
  return function(x) {
    return f(g(x));
  };
};


效果:
var toUpperCase = function(x) {
return x.toUpperCase();
};
var exclaim = function(x) {
return x + "!";
};
 
var shout = compose(
exclaim,
toUpperCase
);
 
console.log(shout("hello world")); //HELLO WORLD!

 

函数组合可以避免在实现相同需求式而使用嵌套函数,实现可读性。
实现一组函数的叠加产生一个新的函数我们可以利用reduce来实现,利用reduce 的累加的特性实现函数的嵌套。
function comp1(arr) {
   return function(val) {
     return arr.reduce(function(x, y) {
       return y(x(val));
     });
   };
}


或者
function comp2(arr) {
   return function(val) {
      return arr.reduce(function(x, y) {
        return y(x);   
      },val);
   };
}


这里把需要组合的函数赋值给一个数组,然后返回一个函数对数组里的函数进行组合后的函数

例子:
var funArr = [toUpperCase, exclaim];
 
console.log(comp1(funArr)); // function...
console.log(comp1(funArr)("hello")); // HELLO!
 
console.log(comp2(funArr)); // function...
console.log(comp2(funArr)("hello")); // HELLO!



站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/2046

关闭

JavaScript中的高阶函数

在 JavaScript 的学习过程中,我们可能或多或少地接触过高阶函数。那么,我们自己对此是否有一个明确的定义,或者说很熟练的掌握这些用法呢

js中HttpServletRequest的使用

HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。

Js方法/函数重载的实现

函数重载这项特性允许创建数项名称相同但输入输出类型或个数不同的子程序函数重载是强类型语言的特性,虽然 js 是弱类型语言,我们可以通过一些方法实现函数重载。

js中 is_NaN()函数的使用

isNaN() 函数用于检查其参数是否是非数字值。它是JavaScript提供的一个内置函数。这个函数使用了Number() 去转换需要判断的值。Number() 去转换值,如果有任意非数值字符存在则就不是一个数值

JS开发常用工具函数

isStatic:检测数据是不是除了symbol外的原始数据;isPrimitive:检测数据是不是原始数据;isObject:判断数据是不是引用类型的数据

什么时候不该使用es6箭头函数?

箭头函数带来了很多便利。恰当的使用箭头函数可以让我们避免使用早期的.bind()函数或者需要固定上下文的地方并且让代码更加简洁。箭头函数也有一些不便利的地方。我们在需要动态上下文的地方不能使用箭头函数:定义需要动态上下文的函数

“回调函数”超难面试题!!

进来的小伙伴可以先自己思考一下 。对于还属于小白的我来说扫了一眼这些代码的反应是:这都是什么鬼?但是我也比较喜欢钻研~ 仔细看了第二眼的反应是:这回调函数也太回调了吧

js函数形参和实参的区别

形参相当于函数中定义的变量,实参是在运行时的函数调用时传入的参数。 形参和实参是存在一种引用关系的,就好比变量中的引用关系。我们都知道,变量中的引用关系跟它们的值有关。形参和实参是存在一种引用关系的,就好比变量中的引用关系。

wxml页面中调用自定义的JavaScript函数

使用到wxs文件,然后在wxs文件里面添加numberToFix函数;然后在需要使用numberToFix方法的wxml页面引入该wxs文件,然后就可以通过{{numberToFix(persent)}}这种方式调用了

JS 中构造函数和普通函数的区别

构造函数也是一个普通函数,创建方式和普通函数一样,但构造函数习惯上首字母大写、构造函数和普通函数的区别在于:调用方式不一样。作用也不一样(构造函数用来新建实例对象)

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!