Получение этого как неопределенного при использовании функции стрелки

Я использую функции стрелок и отлаживаю с помощью Chrome и Firefox Dev Tool. Я получаю, this как неопределенный, хотя код все еще работает.

Я предполагаю, что это как-то связано с исходными картами.

Вот инструменты, которые я использую для создания своего кода:

  • веб-пакет (devtool: eval)
  • babel-loader (предустановка es5)
  • машинопись-погрузчик

1 ответ

Решение

Проблема в том, что хром-отладчик считает, что this в исходном коде относится к времени выполнения рун this, но this внутри функции стрелки в машинописном исходном коде фактически преобразуется в _this, так что он показывает вам не тот объект.

Вот почему проблема только в отладчике, и код все еще работает нормально. Когда мне нужно отладить что-то, где это проблема, я просто копирую это в консоль и добавляю подчеркивание.

Это может быть проблемой, потому что стрелочные функции JS не имеют this, значение thisможет ссылаться на объект, содержащий вашу стрелочную функцию, на повторно посещенные стрелочные функции и статью MDN о выражениях стрелочных функций

Другие вопросы по тегам