Как представить стрелочную функцию средствами ES5

Сохраните внешний this в локальной переменной и верните обычную функцию, читающую её. Это передаёт нужную семантику лексического this в данном примере.

Короткий ответ

Что ответить на собеседовании

Сохраните внешний this в локальной переменной и верните обычную функцию, читающую её. Это передаёт нужную семантику лексического this в данном примере.

Подробный разбор

Ответ с пояснениями

Условие

В методе объекта записано const getName = () => this.name; return getName;. Как выразить сохранение внешнего this средствами ES5?

Ответ

Сохраните внешний this в локальной переменной и верните обычную функцию, читающую её. Это передаёт нужную семантику лексического this в данном примере.

Эквивалент для указанного поведения:

var self = this;
var getName = function () {
  return self.name;
};
return getName;

Это фрагмент тела метода. Он не является универсальным транспилятором: у стрелок также отличаются arguments и возможность использования с new. Конкретный инструмент может генерировать другой код в зависимости от целевых сред.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее