Why when I try to bind a function to itself does the "this" object still refer to the window?
<pre><code>var a = function() {

  alert( this ); // [object Window]
  alert(  a   ); // undefined

}.call( a );
</code></pre>

<p>Why does <code>this</code> still refer to the window object and <code>a</code> undefined. Alternatively, when I do it the following way, <code>this</code> is equal to the function <code>a</code> is not undefined.</p>

<pre><code>var a = function() {

  return this === a; // true

};

a.call(a);
</code></pre>

<p>Can anyone explain why these two functions that are seemingly equivalent give different results?</p>
