(菜鸟理解)复合函数compose

本文介绍了JavaScript中的compose函数,它用于平铺嵌套执行的函数,实现Pointfree风格编程。内容涉及[].slice.call(arguments)的原理,即如何将arguments对象转换为数组,以及reduceRight的解析,讲解了reduceRight与reduce的区别以及回调函数的工作方式。通过实例帮助读者深入理解compose函数的应用。
摘要由CSDN通过智能技术生成

compose函数指的是,将需要嵌套执行的函数平铺。而嵌套执行指的是,一个函数的返回值将作为另一个函数的参数。

而compose函数的作用是,实现函数编程中的Pointfree,使我们专注于转换而不是数据

 

let add = x => x + 10;
let multiply = y => y*10;

let compose = function(){
	let args = [].slice.call(arguments);
	return function (x){
		return args.reduceRight(function(res,cb){
			return cb(res);
		},x)
	}
}

let calculate = compose(multiply,add);
calculate(10);//值为200

那么这里我们需要先掌握的基础有。

一:[].slice.call(arguments)原理解析

1.slice 用来将 array-like 对象转换为 true array。

2.call()方法

function func(name, price) {
  this.name = name;
  this.price = price;
}
var food = {name:"apple",price:10};
func.call(food,"orange",15);
console.log(food); // {name: "orange", price: 15}
// 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值