Junior — Middle
97
Quelles sont les différences entre les fonctions fléchées et les fonctions standard en JavaScript en termes de syntaxe et de comportement?
Réponse de l'IA
sobes.tech IA
Стрелочные функции (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 или конструктор.