function hyCompose(...fns){
var length=fns.length
for(var i=0;i<length;i++){
if(typeof fns[i]!=='function'){
//此处应该抛出异常
//类型错误
throw new TypeError("要求都是函数类型")//一般写英文
}
}
function compose(...args) {
var index = 0
var result = length ? fns[index].apply(this, args): args
//while循环可以一直执行 for循环也可以
while(++index < length) {
result = fns[index].call(this, result)
}
return result
}
return compose
}
function double(m) {
return m * 2
}
function square(n) {
return n ** 2
}
//实现想法
var newFn=hyCompose(double,square)//参数不一定几个
newFn(10)
JavaScript通用组合函数的实现
于 2022-08-22 21:33:52 首次发布