js高级编程技巧之——柯理化函数

277 阅读1分钟

柯理化函数:预先存储或者叫做预先处理的概念

function fn(x, y) {
    // 第一次执行函数,形成一个临时不被释放的上下文(闭包),在闭包中我们保存下来传递的参数信息,当后期
    执行小函数的时候,可以基于作用域链机制,找到闭包中存储的信息,并且拿来使用,所以形成的闭包类似于预先
    把一些信息进行存储
    return function (z) {
        // 最后小函数执行的时候,需要把之前传递的值和最新传递的值进行累加
        return x + y + z;
    }
}
let res = fn(1, 2)(3);
console.log(res); //=>6  1+2+3
 
// Function.prototype.bind 预先处理THIS的,利用的就是柯理化的思想
// React中的redux/react-redux源码以及vue中的很多核心源码都是这样处理的