Fill params method

for educational purpose

by aniketmhatre88

JavaScript

function func(a,b,c,d,e) {
  console.log('a = ' + a);
  console.log('b = ' + b);
  console.log('c = ' + c);
  console.log('d = ' + d);
  console.log('e = ' + e);
}

function fill() {
  var functn = arguments[0],
      args = Array.prototype.slice.call(arguments, 1);

  return function() {
    var index = 0,
        newArgs = args.slice();

    for(var i=0; i< args.length; i++) {
      if (args[i] === "#") {
        newArgs[i] = arguments[index];
        index++;
      }
    }

    functn.apply(this, newArgs);
  };
}

var f = fill(func, 1, 2, "#", "#", 5);
f(3,4);
f(5,4);