Виклик в контексті масиву
важливість: 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, плюс функція.