部分申請

與 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

部分應用的應用部分僅僅意味著固定功能的引數。