code: function defer(func) {
      if (!isFunction(func)) {
        throw new TypeError;
      }
      var args = slice(arguments, 1);
      return setTimeout(function() { func.apply(undefined, args); }, 1);
    }
docs: Defers executing the `func` function until the current call stack has cleared.
  Additional arguments will be provided to `func` when it is invoked.
  
  @static
  @memberOf _
  @category Functions
  @param {Function} func The function to defer.
  @param {...*} [arg] Arguments to invoke the function with.
  @returns {number} Returns the timer id.
  @example
  
  _.defer(function(text) { console.log(text); }, 'deferred');
  // logs 'deferred' after one or more milliseconds