Чем отличаются стрелочные функции от обычных функций в JavaScript
Python
Middle
Без компании
Чем отличаются стрелочные функции от обычных функций в JavaScript
Ответы
Основные отличия стрелочных функций от обычных в JavaScript:
- **Синтаксис** - стрелочные функции короче:
```
const sum = (a, b) => a + b;
```
- **Контекст `this`** - стрелочные функции не имеют своего `this`, они берут его из окружающего контекста:
```
const obj = {
name: 'John',
greet: function() {
setTimeout(() => {
console.log(this.name); // John (берет this из greet)
}, 100);
}
};
```
- **Отсутствие `arguments`** - в стрелочных функциях нет объекта `arguments`.
- **Не могут быть конструкторами** - нельзя использовать с `new`.
- **Нет свойства `prototype`**.
- **Нельзя использовать `yield`** - стрелочные функции не могут быть генераторами.
Стрелочные функции лучше использовать для коротких колбэков, где важно сохранить контекст, а обычные - для методов объектов и конструкторов.