Вернуться к уроку

Вызов в контексте массива

важность: 5

Каким будет результат? Почему?

var arr = ["a", "b"];

arr.push(function() {
  alert( this );
})

arr[2](); // ?

Вызов arr[2]() – это обращение к методу объекта obj[method](), в роли obj выступает arr, а в роли метода: 2.

Поэтому, как это бывает при вызове функции как метода, функция arr[2] получит this = arr и выведет массив:

var arr = ["a", "b"];

arr.push(function() {
  alert( this );
})

arr[2](); // "a","b",function