Understanding the this keyword

In JavaScript, “this” will refer to the execution context for that specific call.

What does that mean?

When we invoke a function, an execution context is created. This execution context is basically a record of information that is important to our function. It lets us know where the function was called from, the parameters that were passed etc. One of the most important properties the record saves is "this" reference which will be used during the function's execution.

But what will "this" reference?

Well, in order to determine this, we will need to find exactly where our function was called from. Once we find the location, there are some rules that are applicable.

Rules:

1. New binding

When a function is invoked with the new keyword, "this" will reference the newly created object: