Calling in an array context
importance: 5
What is the result? Why?
let arr = ["a", "b"];
arr.push(function() {
alert( this );
});
arr[2](); // ?
The call arr[2]()
is syntactically the good old obj[method]()
, in the role of obj
we have arr
, and in the role of method
we have 2
.
So we have a call of the function arr[2]
as an object method. Naturally, it receives this
referencing the object arr
and outputs the array:
let arr = ["a", "b"];
arr.push(function() {
alert( this );
})
arr[2](); // a,b,function(){...}
The array has 3 values: initially it had two, plus the function.