Назад к вопросам
Junior
73
questionbank

Каково отличие между двумя способами задания функции?

Sobes Copilot

Получайте ответы в реальном времени

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

sobes.tech AI

Главное отличие — контекст this.

Способ задания функции Отличие
function declaration Контекст this определяется тем, как функция была вызвана. Поднимается до выполнения кода (hoisting).
стрелочная функция Контекст this наследуется от окружающего (лексического) контекста. Не поднимается (no hoisting).
// function declaration
function regularFunction() {
  console.log(this); // `this` зависит от вызова
}

// стрелочная функция
const arrowFunction = () => {
  console.log(this); // `this` наследуется от контекста, где определена функция
};

Стрелочные функции также не имеют своего объекта arguments (он берется из внешнего контекста) и не могут быть использованы в качестве конструкторов с оператором new.