高阶函数:

  入参和出参都有一个函数当参数或者返回。

偏函数:

  相当于先传一个参数作为基石

function test(a,b,c,d){
    console.log(a,b,c,d);
}
let handle=test.bind(null,1,2);
handle(3,4);

这里就是拿了 1,2当作基石。3,4是传参

匿名函数: 

  就是箭头函数,因为没有取名字

柯里化:

  addCurry(1)(2)(3)(4, 5)()解决这种可以多次传值还有每次不知道传几个值的题目

unction add (...args) {
    return args.reduce((a, b) => a + b)
}
 
function currying (fn) {
    let args = []
    return function _c (...newArgs) {
        //这个newArgs表示的是整个参数变成了一个数组的类型
        console.log(newArgs);
        if (newArgs.length) {
            args = [
                ...args,
                ...newArgs
            ]
            return _c
        } else {
            return fn.apply(this, args)
        }
    }
}
 
let addCurry = currying(add)
// 注意调用方式的变化,最后的那个()是用来转到else的
console.log(addCurry(1)(2)(3)(4, 5)())

克里化最经典的作用就是参数的校验复用功能。

    

 

posted on 2021-06-09 17:06  晓欲望!  阅读(79)  评论(0)    收藏  举报