Назад к вопросам
Middle
3
В чем отличие стрелочных функций от Function Declaration?
Компании, где спрашивали
DevSect
Ответ от нейросети
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 берется из внешнего контекста