title: "this" in fat arrow function vs compiled output through babel
body: <p>Can someone explain this behavior? 
  This code snippet outputs <code>Window</code></p>
  
  <pre><code>(()=&gt;{
    console.log(this);
  })()
  </code></pre>
  
  <p>but its compiled output using babel is</p>
  
  <pre><code>"use strict";
  
  (function () {
    console.log(undefined);
  })();
  </code></pre>
  
  <p>this outputs <code>undefined</code></p>
  
  <p>If babel is just compiling, shouldn't the output be same in both the cases? Why <code>this</code> translates to <code>undefined</code> in babel output?</p>