After experimenting with inheriting contexts with the => feature that ES6 gives us I noticed that the this context can never be changed. Example:
var otherConte
When using the function
keyword, the rules binding this
are fairly straight forward.
Either the invoking call sets this
(be it through .call
, .apply
or JavaScript setting this
when the function is called as a method) or this
gets a well-known value:
this
will be the window object.this
will be undefined.With arrow functions, the rule is even simpler.
this
keyword. (nor arguments, or a few others)Which means that, inside an arrow function, this
is always bound to the outside context, because that is where this
comes from.
So, in summary:
When using arrow functions, the value of this
always comes from the outside context.