> Как обращаться к объекту массива через this в JavaScript (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Яндекс
Стек: JavaScript
> Пример ответа
В JavaScript ключевое слово this внутри обычной функции, переданной в методы массива (например, forEach, map, filter), по умолчанию не ссылается на сам массив. Оно зависит от контекста вызова и в строгом режиме ('use strict') будет undefined, а в нестрогом - глобальным объектом (window в браузере).
Чтобы обратиться к объекту массива через this, нужно явно передать массив как второй аргумент в методы, которые поддерживают параметр thisArg. Например:
JAVASCRIPTconst arr = [1, 2, 3];arr.forEach(function(item) {console.log(this); // ссылается на arr, благодаря thisArg}, arr);
Или с помощью стрелочной функции, которая не создаёт собственного this, а наследует его из внешнего контекста:
JAVASCRIPTconst arr = [1, 2, 3];arr.forEach((item) => {console.log(this); // this из внешнего контекста, не массив});
Для прямого доступа к массиву внутри колбэка проще использовать имя переменной массива или параметр, передаваемый в метод (например, третий аргумент в forEach):
JAVASCRIPTarr.forEach(function(item, index, array) {console.log(array === arr); // true});
Таким образом, this в методах массива - это не массив по умолчанию, но его можно настроить через thisArg или использовать параметры колбэка.
> Похожие задачи по frontend
Как работает HttpOnly cookie и почему к нему нельзя достучаться с JavaScript
Что происходит после отправки запроса в JavaScript
Для чего нужен оператор nullish coalescing (??) и как он работает в JavaScript
Пример замыкания с внутренней функцией и предмет замыкания в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью