Назад к вопросам
Junior — Middle
103
Какие отличия существуют между стрелочными функциями и обычными функциями в JavaScript?
Ответ от нейросети
sobes.tech AI
Стрелочные функции в JavaScript отличаются от обычных функций несколькими ключевыми моментами:
- Контекст
this: В стрелочных функцияхthisлексически привязан к контексту, в котором функция была объявлена. В обычных функцияхthisопределяется в момент вызова и может меняться. - Отсутствие собственного
arguments: Стрелочные функции не имеют собственного объектаarguments. Для доступа к аргументам нужно использовать параметры или rest-оператор. - Нельзя использовать как конструктор: Стрелочные функции не могут быть вызваны с
newи не имеют внутреннего метода [[Construct]]. - Отсутствие
prototype: У стрелочных функций нет свойстваprototype.
Пример:
const obj = {
value: 42,
regularFunc: function() {
console.log(this.value); // 42
},
arrowFunc: () => {
console.log(this.value); // undefined, т.к. this берется из внешнего контекста
}
};
obj.regularFunc();
obj.arrowFunc();