Чем отличаются стрелочные функции от обычных функций в 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`** - стрелочные функции не могут быть генераторами. Стрелочные функции лучше использовать для коротких колбэков, где важно сохранить контекст, а обычные - для методов объектов и конструкторов.