@igoryusha22

Чем отличаются методы класса, почему this — window?

Имеем класс:
class Cls {
  constructor({
    outside
  }) {
    this.outside = outside;
  }
  
  inside = () => {
    console.log('inside', this);
  };
}


создаем instance. в параметры которого передаем объект со стрелочной стрелочной функцией:
const outside = () => {
  console.log('outside', this);
};

const instance = new Cls({
  outside
});


вызываем 2 метода
instance.inside();         // "inside" instance
instance.outside();      // "outside" window


Причём методы в instance, кроме как console.log, ничем не отличаются.
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Отличаются контекстом в котором они объявлены. У них this разный.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы