Ved-форум поддержки
Программирование => Javascript и css => Тема начата: DigitalMag от Февраля 09, 2020, 09:37:15 am
-
Почему babel преобразует эту строку
String.prototype.trimw = () => {
return this.replace(/^\s+|\s+$/g, '');
};
вот в эту:
var _this = void 0;
String.prototype.trim = function () {
return _this.replace(/^\s+|\s+$/g, '');
};
То есть меняет контекст?
-
В общем, исследовав вопрос, я сделал два вывода:
- В стрелочные функции по другому принимают контекст (изначальный код был неверен):
При объявлении в глобальной области видимости они получают в качестве контекста window. Всегда. Даже если эта функция привязана к прототипу!
Внутри класса получает в качестве контекста экземпляр класса