JavaScript 函数与对象创建模式全解析
1. 函数柯里化(Currying)
1.1 柯里化原理
柯里化是一种将多参数函数转换为一系列单参数函数的技术。当首次调用 schonfinkelize() 函数时,它会存储对 slice() 方法的私有引用(称为 slice ),同时存储调用时传入的参数(存储到 stored_args 中),但会去除第一个参数,因为第一个参数是要进行柯里化的函数。之后 schonfinkelize() 会返回一个新函数。当调用这个新函数时,通过闭包,它可以访问已私有存储的参数 stored_args 和 slice 引用。新函数只需将旧的部分应用参数( stored_args )与新参数( new_args )合并,然后将它们应用到原始函数 fn 上( fn 也在闭包中私有可用)。
1.2 柯里化示例
以下是一些柯里化的示例代码:
// 普通函数
function add(x, y) {
return x + y;
}
// 对函数进行柯里化以获得新函数
var newadd = schonfinkelize(add, 5);
newadd(4); // 9
// 另一种方式 -- 直接调用新函数
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



