'Why do I get different result when I call a function written in ES5 and the one written in ES6? [duplicate]

When I call object1.getNumber() I get 1 and I expected to get 2. I rewrote the syntax in ES5 and ES6. So why 'this' works differently in ES6 syntax?

var number = 1;

var object1 = {
  number: 2,
  getNumber: () => this.number
}

var object2 = {
  number: 2,
  getNumber: function() {
    return this.number
  }
}

console.log(object1.getNumber()); // 1
console.log(object2.getNumber()); // 2


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source