Получение этого как неопределенного при использовании функции стрелки
Я использую функции стрелок и отлаживаю с помощью Chrome и Firefox Dev Tool. Я получаю, this
как неопределенный, хотя код все еще работает.
Я предполагаю, что это как-то связано с исходными картами.
Вот инструменты, которые я использую для создания своего кода:
- веб-пакет (devtool: eval)
- babel-loader (предустановка es5)
- машинопись-погрузчик
1 ответ
Проблема в том, что хром-отладчик считает, что this
в исходном коде относится к времени выполнения рун this
, но this
внутри функции стрелки в машинописном исходном коде фактически преобразуется в _this
, так что он показывает вам не тот объект.
Вот почему проблема только в отладчике, и код все еще работает нормально. Когда мне нужно отладить что-то, где это проблема, я просто копирую это в консоль и добавляю подчеркивание.
Это может быть проблемой, потому что стрелочные функции JS не имеют
this
, значение
this
может ссылаться на объект, содержащий вашу стрелочную функцию, на повторно посещенные стрелочные функции и статью MDN о выражениях стрелочных функций