title: How to override window and undefined in javascript?
body: <p>I have seen some examples like this</p>
  
  <pre><code>(function($, window, undefined) {
    ...
    // Do awesome stuff
    ...
  })(jQuery, this);
  </code></pre>
  
  <p>I understand passing jQuery as a paramter and receiving as $.</p>
  
  <p>This is done to avoid conflict between jquery's $ and any global variable $ ( defined by mistake or by some third party library ).</p>
  
  <p>Why do people pass <code>this</code> and receive as <code>window</code> and also receive <code>undefined</code> in function parameter ?</p>
  
  <p><em><strong>Is there any way we can override window and undefined ?</em></strong></p>
  
  <p>PS: I have already tried this in Chrome</p>
  
  <pre><code>undefined = 2; // 2
  undefined == 2; // false
  </code></pre>
  
  <p>It proves undefined can not be over-ridden.</p>