title: Javascript this undefined after function assignment
body: <p>So I was reading the book Professional Javascript for Web developers and came across the following examples.</p>
  
  <pre><code>var object = {
    name: "my Object",
    getName: function() {
      return this.name;
    }
  }
  </code></pre>
  
  <p>The author then shows the following results:</p>
  
  <pre><code>object.getName(); // "my Object"
  (object.getName)(); // "my Object"
  (object.getName = object.getName)() // "undefined"
  </code></pre>
  
  <p>I understand the first case but have the following questions for case 2 and case 3.</p>
  
  <p>Case 2: What does putting a parentheses around object.getName do? So far I only know that you can put parentheses around anonymous function to call it immediately (Immediately-invoked function expression). But what if the function is not anonymous?</p>
  
  <p>Case 3: Why is <code>this</code> not maintained after the assignment? </p>