An arrow inside a constructor inherits this from the constructor's scope, where this is the new instance. This is why arrows fix the setTimeout-in-constructor bug.
Common this Keyword Interview Questions in JavaScript
How does an arrow function affect this inside a constructor?
The answer
More FAQs in Common this Keyword Interview Questions in JavaScript
In non-strict mode, this is the global object (window). In strict mode, this is undefined. This is default binding, the lowest precedence rule.
this is lost. Calling const fn = obj.method; fn() is a plain call, so this is the global object or undefined, not obj. Fix with .bind(obj) or an arrow wrapper.
new binding (highest) > explicit binding (bind/call/apply) > implicit binding (method call) > default binding (plain call). Arrow functions are an exception: they use lexical this and ignore all of these.
Still have questions?
Browse all our FAQs or reach out to our support team
Want to upskill yourself?
Your learning library
Small steps. Big possibilities.
Find your next course. Build something great.