В настоящее время я использую Babel для написания бэкэнда Node.js в ES6. К сожалению, я столкнулся со странным поведением при расширении определенного класса. Некоторые из моих методов, определенных в расширяющем классе, не определены. Если только я не использую синтаксис ES7 для привязки их к свойству.
Это фактический код, который дает мне это странное поведение:
import { Router } from 'express';
class MyCustomRouter extends Router
{
constructor() {
super();
this.methodWorks(); // works like a charm.
this.methodDoesnt(); // throws TypeError: _this.methodDoesnt is not a function
}
methodWorks = () => {
// some content
}
methodDoesnt() {
// some content
}
}
Это фактически расширяет Router
из библиотеки expressjs
. Так что сейчас мне просто любопытно, может ли кто-нибудь объяснить это поведение и/или есть ли способ исправить это.