What is the output of following code?
const f = () => {
console.log(this.a);
}
f.apply({ a: 10 });
----o----
Output is undefined
.
In case of arrow function, this
is not bound to the function. This rule is applicable even when used with call()
or apply()
.
In our example, f()
is defined in the global scope(window
). Therefore in line 2, when this.a
is printed, it prints the value of window.a
. Since, there is no global variable a
, undefined
is printed.