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}
//