Sobes.tech
Junior
109
questionbank

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

AI答案

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.