What is this in a plain function call 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.
Verify This Answer
Cross-check this information using these trusted sources:
More FAQs in Common this Keyword Interview Questions in JavaScript
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.
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
