什么是组合函数?
组合函数是指将多个函数糅合到一个函数中
组合函数的优点:
-
减少重复代码:组合函数能够帮助我们避免一些冗余的代码,减少代码量和工作量。
-
提高代码可维护性:使用组合函数可以使代码更为模块化,功能单一化,便于后期的修改和维护。
-
改进代码可读性:由于组合函数是将多个小函数组合成一个大函数,这样大型函数就变得简单明了,易于阅读和理解。
-
增强代码的灵活性:使用组合函数可以快速建立新函数,可在任何版本迭代期间构建全新的功能,从而增加程序的灵活性。
-
方便测试: 函数组合可以更好的让开发者进行单元测试、集成测试等各种类型的测试,从而提供更加严谨的代码测试保障。
例:function a(num){
return num * 2
}
function b(num){
return num ** 2
}
function composeFn(…fns){
//1. 边界判断(edge case)
length = fns.length
if(length <= 0)return
for (let i = 0; i < length; i++) {
if(typeof fns[i] !== ‘function’){
throw new Error(index ${i} not a function!
)
}
}
//2. 返回组合函数
return function(…args){
let result = fns[0].apply(this,args)
for (let i = 1; i < length; i++) {
result = fns[i].call(this,result)
}
return result
}
}
let newFn = composeFn(a,b)
console.log(newFn(100));