this keyword refers to the object that the function is a property of. It can also refer to the global object if the function is not a property of any object. The value of
this is determined at the time the function is called, not at the time the function is defined.
The value of
this can be explicitly set using the
apply() methods of a function, or by using the
bind() method to create a new function with a specific value of
Arrow functions, introduced in ES6, behave differently than regular functions when it comes to the
this keyword. In an arrow function, the value of
this is inherited from the surrounding context, and cannot be changed.