1

我有一个用 ES6 编写的简单类

class MyClass {
  constructor() {
    this.firstVar = 'a';
    this.secondVar = 'b';
  }
  get first() { return this.firstVar; }
  set first(val) { this.firstVar = val; }

  get second() { return this.secondVar; }
  set second(val) { this.secondVar = val; }

  allValues() {
    return this.firstVar + this.secondVar;
  }
}

export { MyClass };

我通过编译该代码到 ES5 babel MyClass.es6 > MyClass.js,然后尝试在我现有的 ES5 代码库中使用它:

var t = require('./MyClass');
console.log(t.allValues());

但是我收到一条错误消息,指出 t 没有方法 allValues。我正在尝试做的事情可能吗?

4

1 回答 1

3

类必须被实例化。您永远不会创建MyClass. 您也错误地导入了它。您正在导出MyClass命名导出,并且必须将其导入。

以目前的形式,你必须做

var MyClass = require('./MyClass').MyClass;
var t = new MyClass();
console.log(t.allValues());

或者您可以将其导出为默认导出:

export default MyClass;

在这种情况下你可以做

var t = require('./MyClass');

(至少与通天塔)

于 2015-04-13T17:59:40.173 回答