Sobes.tech
Назад к вопросам
Junior — Middle
103

Какие отличия существуют между стрелочными функциями и обычными функциями в JavaScript?

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

sobes.tech AI

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

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

Пример:

const obj = {
  value: 42,
  regularFunc: function() {
    console.log(this.value); // 42
  },
  arrowFunc: () => {
    console.log(this.value); // undefined, т.к. this берется из внешнего контекста
  }
};

obj.regularFunc();
obj.arrowFunc();