配列コンテキストにおける呼び出し
重要性: 5
結果は?なぜですか?
let arr = ["a", "b"];
arr.push(function() {
alert( this );
});
arr[2](); // ?
arr[2]()の呼び出しは構文的には昔ながらのobj[method]()と同じで、objの役割はarrで、methodの役割は2です。
つまり、オブジェクトメソッドとして関数arr[2]を呼び出しているのです。当然、thisはオブジェクトarrを参照して配列を出力します。
let arr = ["a", "b"];
arr.push(function() {
alert( this );
})
arr[2](); // a,b,function(){...}
この配列には3つの値があります。最初は2つ、その上に関数がありました。