部分申請
與 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
部分應用的應用部分僅僅意味著固定功能的引數。