【发布时间】:2016-05-13 22:35:30
【问题描述】:
目前我正在使用 Babel 在 ES6 中编写 Node.js 后端。不幸的是,我在扩展特定类时遇到了奇怪的行为。我在扩展类中定义的一些方法是未定义的。除非我使用 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
}
}
这实际上是从expressjs 库扩展Router。所以现在我只是好奇是否有人可以解释这种行为和/或是否有办法解决这个问题。
【问题讨论】:
-
我同时使用 Express 4.13.3 和 Babel 6.4.6使用插件 es2015、stage-0、stage-1、stage-2 和 stage-3 .
标签: express ecmascript-6 babeljs ecmascript-2016