JavaScript Functions Partial Application


Similar to currying, partial application is used to reduce the number of arguments passed to a function. Unlike currying, the number need not go down by one.


This function ...

function multiplyThenAdd(a, b, c) {
    return a * b + c;

... can be used to create another function that will always multiply by 2 and then add 10 to the passed value;

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

The "application" part of partial application simply means fixing parameters of a function.