Sobes.tech
Назад к вопросам
Middle
5

Чем отличается стрелочная функция от обычной именованной функции?

Компании, где спрашивали
Ростелеком

Ответ от нейросети

sobes.tech AI

Стрелочные функции в JavaScript отличаются от обычных именованных функций несколькими ключевыми моментами:

  • Контекст this: стрелочные функции не имеют собственного this; они наследуют this из окружающего лексического контекста. Обычные функции имеют собственный this, зависящий от способа вызова.
  • Отсутствие arguments: стрелочные функции не имеют объекта arguments. Для доступа к аргументам нужно использовать параметры или rest-параметры.
  • Нельзя использовать как конструктор: стрелочные функции нельзя вызвать с new.
  • Синтаксис: стрелочные функции короче и удобнее для написания коротких функций.

Пример:

const obj = {
  value: 42,
  regularFunc: function() { return this.value; },
  arrowFunc: () => this.value
};

console.log(obj.regularFunc()); // 42
console.log(obj.arrowFunc());   // undefined, т.к. this не указывает на obj