> Как обращаться к объекту массива через this в JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Яндекс

Стек: JavaScript

> Пример ответа

В JavaScript ключевое слово this внутри обычной функции, переданной в методы массива (например, forEach, map, filter), по умолчанию не ссылается на сам массив. Оно зависит от контекста вызова и в строгом режиме ('use strict') будет undefined, а в нестрогом - глобальным объектом (window в браузере).

Чтобы обратиться к объекту массива через this, нужно явно передать массив как второй аргумент в методы, которые поддерживают параметр thisArg. Например:

JAVASCRIPT
const arr = [1, 2, 3];
arr.forEach(function(item) {
console.log(this); // ссылается на arr, благодаря thisArg
}, arr);

Или с помощью стрелочной функции, которая не создаёт собственного this, а наследует его из внешнего контекста:

JAVASCRIPT
const arr = [1, 2, 3];
arr.forEach((item) => {
console.log(this); // this из внешнего контекста, не массив
});

Для прямого доступа к массиву внутри колбэка проще использовать имя переменной массива или параметр, передаваемый в метод (например, третий аргумент в forEach):

JAVASCRIPT
arr.forEach(function(item, index, array) {
console.log(array === arr); // true
});

Таким образом, this в методах массива - это не массив по умолчанию, но его можно настроить через thisArg или использовать параметры колбэка.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью