> Почему стрелочную функцию нельзя использовать как конструктор в JavaScript (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Домклик, IT-One, TYMY
Стек: JavaScript
> Пример ответа
Стрелочные функции в JavaScript не имеют собственного контекста this и не обладают внутренним методом [[Construct]], который необходим для создания экземпляров через оператор new. Когда вы пытаетесь вызвать стрелочную функцию с new, движок выбрасывает ошибку TypeError: Arrow function is not a constructor.
Кроме того, у стрелочных функций отсутствует свойство prototype, которое автоматически присваивается обычным функциям и используется для наследования. Это делает их непригодными для работы с прототипным наследованием, что является ключевым для конструкторов.
Пример:
JAVASCRIPTconst Foo = () => {};new Foo(); // TypeError: Foo is not a constructorconsole.log(Foo.prototype); // undefined
Таким образом, стрелочные функции предназначены только для вызова, а не для инстанцирования.
> Похожие задачи по frontend
Какие примитивные типы существуют в JavaScript?
Как реализовать функцию any, которая работает как Promise.any?
В чем разница между Promise.all, Promise.any и Promise.race в JavaScript
Каков порядок выполнения задач (task) и микротасков (microtask) в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью