> Почему стрелочную функцию нельзя использовать как конструктор в JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Домклик, IT-One, TYMY

Стек: JavaScript

> Пример ответа

Стрелочные функции в JavaScript не имеют собственного контекста this и не обладают внутренним методом [[Construct]], который необходим для создания экземпляров через оператор new. Когда вы пытаетесь вызвать стрелочную функцию с new, движок выбрасывает ошибку TypeError: Arrow function is not a constructor.

Кроме того, у стрелочных функций отсутствует свойство prototype, которое автоматически присваивается обычным функциям и используется для наследования. Это делает их непригодными для работы с прототипным наследованием, что является ключевым для конструкторов.

Пример:

JAVASCRIPT
const Foo = () => {};
new Foo(); // TypeError: Foo is not a constructor
console.log(Foo.prototype); // undefined

Таким образом, стрелочные функции предназначены только для вызова, а не для инстанцирования.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью