Я думаю, что это поможет:
this.router.get('/users', authenticationController.test.bind(AuthenticationController));
Обычно, когда у вас есть класс A
с методом b
, если вы передаете A.b
, например:
const a = new A();
const b = a.b;
b(); // now 'this' is lost, any reference to `this` in b() code would be undefined
Вы передаете только функцию . Теперь он не имеет ничего общего с классом A
, это просто функция .
Итак, среди прочего, вы можете использовать bind
, чтобы явно установить контекст this
для функции:
const a = new A();
const b = a.b.bind(a);
b(); // so now b() is forced to use a as this context
Могу поспорить, что существует множество дубликатов о вашей проблеме, но я не смог найти никого быстро, потому что поиск сложен (this
связывание в js МНОГО проблем).
Надеюсь, это поможет.