-1

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
Andy
  • 53,323
  • 11
  • 64
  • 89
Tanaka
  • 114
  • 1
  • 1
  • 10
  • They do two different things, see [What's the meaning of "=>" (an arrow formed from equals & greater than) in JavaScript?](https://stackoverflow.com/questions/24900875/whats-the-meaning-of-an-arrow-formed-from-equals-greater-than-in-javas) – Federkun May 07 '22 at 08:31

0 Answers0