柯理化函数
预先存储或预先处理的思想
大函数执行时需要预先传递参数
返回的小函数会使用大函数中,先前传入且被存储下来的参数,或是这些参数经过大函数处理过后的内容
function fn(x, y) {
//=> 第一次执行函数,形成一个临时不被释放的上下文(闭包),在闭包中我们保存下来传递的参数信息,当后期执行小函数的时候,可以基于作用域链机制,找到闭包中存储的信息
return function(z) {
// 最后小函数执行的时候,需要把之前传递的值和最新传递的值进行累加
return x + y + z;
}
}
let res = fn(1, 2)(3);
console.log(res);