Контекст this в конструкторах и стрелочных функциях

Medium
arrow-functionsthisconstructorsclassesTinkoff

Что вернёт вызов a.f() в коде ниже? Почему так?

class A {
  constructor() {
    this.f = () => this;
  }
}

class B {
  constructor(a) {
    console.log('a.f() output', a.f());
  }
}

new B(new A());

Реализуйте функцию answer(), которая должна вернуть строку:

  • "A" — если a.f() возвращает экземпляр класса A
  • "B" — если a.f() возвращает экземпляр класса B
  • "window" — если возвращается глобальный объект

Примеры

Ваш код - JavaScript
Результаты
Нажмите «Запуск» для выполнения кода