Сохраните внешний this в локальной переменной и верните обычную функцию, читающую её. Это передаёт нужную семантику лексического this в данном примере.
Как представить стрелочную функцию средствами ES5
Сохраните внешний 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. Конкретный инструмент может генерировать другой код в зависимости от целевых сред.