Чему будет равен this внутри функции, если вызвать её через fn.call(this) в браузере — в обычном режиме и в strict mode?

fn.call(this) передаёт текущее внешнее this явно; результат зависит от того, чему оно равно и является ли сама fn строгой.

Короткий ответ

Что ответить на собеседовании

fn.call(this) передаёт текущее внешнее this явно; результат зависит от того, чему оно равно и является ли сама fn строгой.

Подробный разбор

Ответ с пояснениями

fn.call(this) передаёт текущее внешнее this явно; результат зависит от того, чему оно равно и является ли сама fn строгой.

В верхнем уровне обычного браузерного script this обычно равно window даже при директиве strict, в ES-модуле — undefined. Строгая обычная fn сохраняет переданное значение, нестрогая заменяет null/undefined глобальным объектом. Стрелка игнорирует переданный this и использует лексический.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее