Выбор ответа Junior Функции высшего порядка спрашивают часто обновлено

Ограничения стрелочных функций

Вопрос

Что верно для стрелочных функций?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Их нельзя вызвать через new. Стрелка не может быть конструктором: new (() = {}) бросает TypeError, и свойства prototype у неё нет.

Варианты ответа

  1. У них свой this, равный объекту, в котором они объявлены
  2. Они поднимаются целиком, как объявления function
  3. Их нельзя вызвать через newправильный ответ
  4. У них есть свойство prototype

Разбор

Стрелка не может быть конструктором: new (() => {}) бросает TypeError, и свойства prototype у неё нет. Своего this у стрелки нет, она берёт его из окружающей функции или модуля, а литерал объекта окружением не является. Стрелка всегда выражение, присвоенное переменной, поэтому до строки присваивания её не вызвать.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.