闭包的应用-JS高阶编程技巧之柯理化函数

153 阅读1分钟

柯理化函数

预先存储或预先处理的思想

大函数执行时需要预先传递参数

返回的小函数会使用大函数中,先前传入且被存储下来的参数,或是这些参数经过大函数处理过后的内容


function fn(x, y) {
//=> 第一次执行函数,形成一个临时不被释放的上下文(闭包),在闭包中我们保存下来传递的参数信息,当后期执行小函数的时候,可以基于作用域链机制,找到闭包中存储的信息
    return function(z) {
        // 最后小函数执行的时候,需要把之前传递的值和最新传递的值进行累加
        return x + y + z;
    }
}

let res = fn(1, 2)(3);
console.log(res);