title: underscore _.delay implementation
body: <p>Why does the first implementation of delay not work?</p>
  
  <p>Also how does the 3rd one work without using Array.prototype.slice.call?</p>
  
  <pre><code>  _.delay = function(func, wait) {
      var args = Array.prototype.slice.call(arguments, 2);
      return setTimeout(func(args), wait);
    };
  
    _.delay = function(func, wait) {
      var args = Array.prototype.slice.call(arguments, 2);
      return setTimeout(function() { return func.apply(this, args); }, wait);
    };
  
    _.delay = function(func, wait) {
      return setTimeout.apply(this, arguments);
    };
  </code></pre>