What is the output of following code?
const obj = {
a : function(){
console.log(this.b);
}
}
obj.a.apply({b : 10});
----o----
The output is 10
.
apply()
is a method of function object. Even though a
is called in the context of obj
, the invocation context is overridden by apply()
method. Therefore, when obj.a()
is invoked, this
has the value of {b : 10}
which is set by apply()
method. That is why 10
is printed in the console.