部分申请
与 currying 类似,部分应用程序用于减少传递给函数的参数数量。与 currying 不同,这个数字不必一个一个。
例:
这个功能……
function multiplyThenAdd(a, b, c) {
return a * b + c;
}
…可用于创建另一个函数,该函数总是乘以 2,然后将 10 加到传递的值上;
function reversedMultiplyThenAdd(c, b, a) {
return a * b + c;
}
function factory(b, c) {
return reversedMultiplyThenAdd.bind(null, c, b);
}
var multiplyTwoThenAddTen = factory(2, 10);
multiplyTwoThenAddTen(10); // 30
部分应用的应用部分仅仅意味着固定功能的参数。