JSFiddle - React, Tailwind, and code Playground

JavaScript

function test(a, b, c) { return 'a=' + a + ',b=' + b + ',c=' + c; };

    function partial3(func) {

        var self = func, boundArgs = arguments;

        return function() {

            var args = Array.prototype.slice.call(boundArgs, 1);
            var i = 0, j = 0;
            for(; i < args.length; i++) {
                if (args[i] === undefined) args[i] = arguments[j++];
            }
            var insideArgs = Array.prototype.slice.call(arguments, j);

            var argsFinal = args.concat(insideArgs);

            return self.apply(this, argsFinal);

        }

    }

    var test1_3 = partial3(test, 1, undefined, 3);
    console.log(test1_3(5)); // a=1,b=5,c=3