Appearance
柯里化函数: 其实就是一种"预先存储"的函数思想 1.首先把一些信息存储到某一个不被释放的上下文中 2.后期基于作用域链机制可以让其下级上下文访问到存储的信息
js
// 执行fn是为了把一些信息事先存储起来(10, 20)
// 把返回的小函数再执行,传递另外的一些值,最后再小函数执行时,通过上级上下文拿到之前存储的值(10, 20),最后获取所有数相加的和
function fn() {
let outerArgs = Array.from(arguments)
return function proxy() {
let innerArgs = Array.from(arguments)
return outerArgs.concat(innerArgs).reduce((acc, cur) => acc + cur, 0)
}
}
const fn = (...outterArgs) => {
return (...innerArgs) => {
return outterArgs.concat(innerArgs).reduce((acc, cur) => acc + cur, 0)
}
}
const fn = (...outterArgs) => (...innerArgs) => outterArgs.concat(innerArgs).reduce((acc, cur) => acc + cur)
let proxy = fn(10, 20)
let sum = proxy(30, 40)