Why are these two parameters in the jQuery source for?
<p>The jQuery source is wrapped in a closure, like this:</p>

<pre><code>(function(window, undefined) {
   //awesome jQuery library code in here
})(window);
</code></pre>

<p>I don't understand why either of these parameters are needed. </p>

<p>Since <code>window</code> is a global variable, why does it need to be passed in? What's the purpose of passing in a global parameter and accessing it inside the closure with the same name?</p>

<p>What's the <code>undefined</code> parameter for? Why isn't any value passed to it?</p>
