Назад к вопросам
Middle
88
questionbank
Что произойдет, если вызвать `this` в стрелочной функции?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В стрелочной функции this лексически связан. Это означает, что this будет указывать на контекст выполнения, в котором стрелочная функция была определена, а не на контекст, в котором она вызвана.
Пример:
const obj = {
name: 'Объект',
method: function() {
// this здесь указывает на obj
const arrowMethod = () => {
// this здесь также указывает на obj,
// так как стрелочная функция определена внутри method
console.log(this.name);
};
arrowMethod();
},
anotherMethod: () => {
// this здесь указывает на глобальный объект (window в браузере)
// так как стрелочная функция определена на верхнем уровне в obj
console.log(this);
}
};
obj.method(); // Выведет "Объект"
obj.anotherMethod(); // Выведет Window (в браузере)
Сравнение с обычными функциями:
В обычных функциях значение this определяется способом вызова функции (например, с использованием call, apply, bind, или как метод объекта).
const regularFunction = function() {
console.log(this);
};
const context = { value: 42 };
regularFunction(); // this указывает на глобальный объект (window/globalThis)
regularFunction.call(context); // this указывает на context
Таким образом, при вызове this в стрелочной функции, вы получите значение this из области видимости, где эта функция была создана, а не из области видимости, где она была исполнена. Это делает стрелочные функции удобными для использования в колбэках, где часто требуется сохранить контекст this.