PassFront
  1. PassFront
  2. База знаний
  3. Функции

Что такое стрелочная функция?

Функции

Стрелочная функция (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 берётся из окружения. Идеальна для колбэков; не годится для методов объектов и конструкторов.

Другие вопросы раздела