Volání v kontextu pole
důležitost: 5
Jaký je výsledek? Proč?
let pole = ["a", "b"];
pole.push(function() {
alert( this );
});
pole[2](); // ?
Volání pole[2]() je syntakticky stará dobrá obj[metoda](), v roli obj máme pole a v roli metoda máme 2.
Zavolali jsme tedy funkci pole[2] jako objektovou metodu. Ta přirozeně obdrží this odkazující se na objekt pole a vypíše toto pole:
let pole = ["a", "b"];
pole.push(function() {
alert( this );
})
pole[2](); // a,b,function(){...}
Toto pole má 3 hodnoty: na začátku mělo dvě, plus funkce.