How do you fix the lost this bug in a callback in JavaScript?
Use .bind(obj) to permanently bind this, or wrap the method call in an arrow function (() => obj.method()), or define the method as an arrow in the object. Arrows inherit this lexically.
Verify This Answer
Cross-check this information using these trusted sources:
More FAQs in 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-priority 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.
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.
Still have questions?
Browse all our FAQs or reach out to our support team
