title: Ridiculous scoping in Js
body: <p>Can someone explain to me why the second function call returns undefined? I see no reason for that. The reference of the object method is stored in a variable, so it should be printed out. Why the result is undefined? The first function call is successful and the only difference is that the second one is stored in a variable.</p>
  <pre><code>const module = {
    x: 42,
    getX: function() {
      return this.x;
    }
  };
  
  //1 - returns 42
  console.log(module.getX());
  
  //2 - returns undefined
  const unboundGetX = module.getX;
  console.log(unboundGetX());
  
  </code></pre>