Задать вопрос
@serhii328764

Не пойму работу стрелочных функций, как метода конструктора. Почему такой результат?

Почему стрелочная функция получает корректный контекст this? При этом переменную const b она выводит корректно.
function Test() {
  this.a = 5;
  const b = 0;
  
  const getValue = () => console.log(this.a, b);
  
  this.testMethod = () => {
    const b = 10;
    getValue();
  };
}

 const test = new Test();
 test.testMethod();  // 5, 0


ничего не меняется даже если изменить контекст

this.testMethod = function() {
    const b = 10;
    console.log(this.a); // undefined
    getValue();
  }.bind(window);
  • Вопрос задан
  • 138 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
IonDen
@IonDen
JavaScript developer. IonDen.com
Стрелочные функции не имеют своего `this` и при обращении к нему он берется снаружи.
В остальном эта обычная функция, и переменные созданные внутри нее, работают только в ее области видимости.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы