JSFiddle - React, Tailwind, and code Playground

JavaScript

function partial() {
    var func = arguments[0];
    argsDefined = [].slice.call(arguments, 1);
    
    return function() {
        for (var i = argsDefined.length - 1; i >= 0; i--) {
            [].unshift.call(arguments, argsDefined[i]);
        }
        return func.apply(null, arguments);
    }
}

function add(a, b) { return a + b; }
function mult(a, b, c, d) { return a * b * c * d; }

var add5  = partial(add, 5);
console.log(add5(2));
console.log(add5(5));
var mult25 = partial(mult, 2, 5);
console.log(mult25(3, 2));
var mult2 = partial(mult, 2);
console.log(mult2(1, 2, 5));