Встречается на собеседованиях • сегодня

В чем разница между функциями классическими и стрелочными

  1. Контекст (this)
    У классических функций свой this, зависящий от вызова. У стрелочных — this берется из внешней области (лексический контекст).

    javascript
    const obj = {
      name: 'Test',
      classicFunc: function() { console.log(this.name); },
      arrowFunc: () => console.log(this.name)
    };
    obj.classicFunc(); // 'Test'  
    obj.arrowFunc();   // undefined (если не strict mode — window/global)
  1. Конструктор
    Классические можно вызывать с new, стрелочные — нет (ошибка).

  2. Arguments
    У стрелочных нет своего arguments (используют внешний).

  3. Синтаксис и return
    Стрелочные можно писать короче:

    javascript
    const sum = (a, b) => a + b; // return не нужен
  4. Методы и прототипы
    Стрелочные не подходят для методов объектов (из-за this) и не имеют prototype.

Когда что использовать:

  • Классические — для методов, конструкторов, динамического this.
  • Стрелочные — для колбэков, сохранения контекста, коротких функций.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы