Назад к вопросам
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.