title: What does func.apply(this, arguments) do in this code for _.once()?
body: <p>The following function underbar function was rewritten by peer of mine like so:</p>
  
  <pre><code>    var once = function(func) {
          var alreadyCalled = false;
          var result;
  
          return function() {
            if (!alreadyCalled) {
              result = func.apply(this, arguments);
              alreadyCalled = true;
            }
          return result
          };
        };
  </code></pre>
  
  <p>Here's how I interpret it. It's a function that takes another function and returns yet another function. If <code>alreadyCalled</code> is <code>false</code> then set <code>result = func.apply(this,arguments)</code></p>
  
  <p>Can someone please help me understand in a simple way what <code>func.apply(this,arguments)</code> is doing in the context of this function. I can't seem to figure it out! </p>