- Краткий синтаксис. Стрелочные функции имеют более короткий и лаконичный синтаксис по сравнению с обычными функциональными выражениями.
Пример:
const add = (a, b) => a + b;
- Неявный возврат: стрелочные функции автоматически возвращают результат выражения без использования ключевого слова
return
, если тело функции состоит из одного оператора.
Пример:
const multiply = (a, b) => a * b;
- Лексическая привязка
this
: стрелочные функции не имеют собственного значенияthis
. Вместо этого они наследуют значениеthis
из окружающего контекста, что упрощает доступ к правильному значениюthis
.
Пример:
const person = {
name: 'John',
greet: function() {
setTimeout(() => {
console.log(`Hello, my name is ${this.name}`);
}, 1000);
}
};
person.greet(); // Output: Hello, my name is John
- Нет
аргументов
Привязка: стрелочные функции не имеют собственного объектаarguments
. Вместо этого вы можете получить доступ к аргументам окружающей области.
Пример:
function sumAll() {
const numbers = Array.from(arguments);
return numbers.reduce((sum, num) => sum + num, 0);
}
console.log(sumAll(1, 2, 3, 4)); // Output: 10
- Не подходит для объектных методов: функции стрелок не привязывают собственное значение
this
, что делает их непригодными для объектных методов, которым требуется собственный контекстthis
.
>
Пример:
const person = {
name: 'John',
sayName: () => {
console.log(`My name is ${this.name}`);
}
};
person.sayName(); // Output: My name is undefined