function delay(func, wait) {
      if (!isFunction(func)) {
        throw new TypeError(FUNC_ERROR_TEXT);
      }
      var args = arguments;
      return setTimeout(function() { func.apply(undefined, slice(args, 2)); }, wait);
    }
Invokes `func` after `wait` milliseconds. Any additional arguments are
provided to `func` when it is invoked.

@static
@memberOf _
@category Function
@param {Function} func The function to delay.
@param {number} wait The number of milliseconds to delay invocation.
@param {...*} [args] The arguments to invoke the function with.
@returns {number} Returns the timer id.
@example

_.delay(function(text) { console.log(text); }, 1000, 'later');
// => logs 'later' after one second