Что такое стрелочная функция?
Функции
Стрелочная функция (arrow function) — это компактный синтаксис объявления функций из ES6. Главное её отличие: у неё нет собственного this.
Синтаксис
const add = (a, b) => a + b; // неявный return
const square = (x) => x * x; // один аргумент
const greet = () => 'Привет'; // без аргументов
const make = () => ({ id: 1 }); // возврат объекта — в скобкахГлавные особенности
- Нет своего `this` — берётся из внешнего лексического окружения.
- Нет `arguments` — используют rest
...args. - Нельзя вызвать с `new` — не конструктор, нет
prototype. - Компактность — при одном выражении
returnне нужен.
Где удобны
Колбэки и методы массива, где нужно сохранить внешний this:
class Timer {
seconds = 0;
start() {
setInterval(() => this.seconds++, 1000); // this = экземпляр Timer
}
}Где не подходят
- Методы объектов, где нужен
thisсамого объекта. - Конструкторы.
- Обработчики, где нужен динамический
this(например,this= элемент).
Коротко для собеседования
Стрелочная функция — краткий синтаксис без своего this, arguments и prototype; this берётся из окружения. Идеальна для колбэков; не годится для методов объектов и конструкторов.