title: Why do you need to pass in arguments to a self executing function in javascript if the variable is global?
body: <p>I was looking at the code for the <a href="http://underscorejs.org/underscore.js" rel="nofollow">underscore.js library</a> (jQuery does the same thing) and just wanted some clarification on why the window object is getting passed into the self executing function.</p>
  
  <p>For example:</p>
  
  <pre><code>(function() {            //Line 6
    var root = this;       //Line 12
    //Bunch of code
  }).call(this);           //Very Bottom
  </code></pre>
  
  <p>Since <code>this</code> is global, why is it being passed into the function? Wouldn't the following work as well? What issues would arrise doing it this way?</p>
  
  <pre><code>(function() {
    var root = this;
    //Bunch of code
  }).call();
  </code></pre>