Мы хотим сделать этот проект с открытым исходным кодом доступным для людей во всем мире. Пожалуйста, помогите нам перевести это руководство на другие языки.
КупитьEPUB/PDF
Поделиться
вернуться к уроку

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

важность: 5

Каков результат? Почему?

let arr = ["a", "b"];
arr.push(function() {
 alert( this );
});
arr[2](); // ?

Вызов arr[2]() синтаксически – старый добрый obj[method](), в роли objarr, а в роли method2.

Итак, у нас есть вызов функции arr[2] как метода объекта. Соответственно, он получает в качестве this объект arr и выводит массив:

let arr = ["a", "b"];
arr.push(function() {
 alert( this );
})
arr[2](); // a,b,function(){...}

У массива в итоге 3 элемента: сначала их было 2, плюс функция.

AltStyle によって変換されたページ (->オリジナル) /