Do you know what will be the output of this code?
JavaScript
const obj = {
value: 42,
regular() {
return this.value;
},
arrow: () => this.value,
};
console.log(obj.regular(), obj.arrow());
Show answer and explanation
The answer is 42 undefined.
regular is called as obj.regular(), so this is obj. The arrow function has no this of its own. It uses the this of the surrounding scope, which isn’t obj.
Use regular method syntax for object methods.