Q:

Trouble with method that takes in a function and its arguments

I am having trouble passing a kata.   I believe I am on the right track, but do not fully understand how to retrieve the desired results.   
The Instructions
Write a method that takes in a function and the arguments to the function and returns another function which when invoked, returns the result of the original function invoked with the supplied arguments. 
Example Given
Given a function add
function add (a, b) {
  return a + b;
}

One could make it lazy as:
var lazy_value = make_lazy(add, 2, 3);

The expression does not get evaluated at the moment, but only when you invoke lazy_value as:
lazy_value() => 5

Here is my half a day endeavor conclusion 
var make_lazy = function () {

   var innerFunction = null;
   var array = [];

   for (var i = 0; i < arguments.length; i++) {
     if (typeof arguments[i] == 'function') {
       innerFunction = arguments[i];
     } else {
      array.push(arguments[i]);
     }
    }

    innerFunction.apply(innerFunction, array);

    innerFunction();
};

I'm using arguments and apply() and think I am close?   However I am getting TypeError: lazy_sum is not a function at Object.exports.runInThisContext within test results.   Any help, especially understanding what is going on, is appreciated.   Thanks

A:

...

    return function() {
      return innerFunction.apply(this, array);
    };

};

Thanks again all.   Problem solved.