Junior — Middle
87
Care sunt diferențele dintre funcțiile săgeată și funcțiile standard în JavaScript din punct de vedere al sintaxei și comportamentului?
Răspuns de la AI
sobes.tech AI
Стрелочные функции (arrow functions) в JavaScript отличаются от стандартных функций по синтаксису и поведению:
- Синтаксис:
- Стрелочные функции короче, не требуют ключевого слова
functionи могут иметь неявный возврат значения.
- Стрелочные функции короче, не требуют ключевого слова
// Стандартная функция
function sum(a, b) {
return a + b;
}
// Стрелочная функция
const sum = (a, b) => a + b;
- Контекст
this:- В стрелочных функциях
thisлексически привязан к контексту, в котором функция была объявлена. - В стандартных функциях
thisзависит от того, как функция вызвана.
- В стрелочных функциях
const obj = {
value: 10,
method: function() {
setTimeout(function() {
console.log(this.value); // undefined, т.к. this указывает на глобальный объект
}, 100);
},
arrowMethod: function() {
setTimeout(() => {
console.log(this.value); // 10, т.к. стрелочная функция берет this из метода
}, 100);
}
};
-
Отсутствие
arguments:- Стрелочные функции не имеют собственного объекта
arguments.
- Стрелочные функции не имеют собственного объекта
-
Нельзя использовать как конструкторы:
- Стрелочные функции нельзя вызвать с
new.
- Стрелочные функции нельзя вызвать с
Таким образом, стрелочные функции удобны для коротких функций и сохранения контекста this, а стандартные функции лучше подходят, когда нужен динамический this или конструктор.