Sobes.tech
Back to questions
Middle
4

В чем отличие стрелочных функций от Function Declaration?

Companies where asked
DevSect

Answer from AI

sobes.tech AI

Основные отличия стрелочных функций от Function Declaration:

  • Синтаксис: Стрелочные функции короче и не имеют собственного имени.

  • Контекст this: Стрелочные функции не имеют собственного this, они наследуют его из окружающего контекста. Обычные функции имеют свой собственный this, который зависит от способа вызова.

  • Объект arguments: В стрелочных функциях нет объекта arguments, в обычных — есть.

  • Нельзя использовать как конструктор: Стрелочные функции нельзя вызвать с new.

  • Отсутствие prototype: У стрелочных функций нет свойства prototype.

Пример:

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

console.log(obj.regularFunc()); // 42
console.log(obj.arrowFunc());   // undefined, т.к. this берется из внешнего контекста