我有一个用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 };
我通过babel MyClass.es6 > MyClass.js
将代码编译到ES5,然后尝试在我现有的ES5代码库中使用它:
var t = require('./MyClass');
console.log(t.allValues());
但我得到一个错误,声明t没有方法allValues。我正在尝试做什么?
答案 0 :(得分:3)
必须实例化类。您永远不会创建MyClass
的实例。你也错误地导入它。您要将MyClass
导出为名为export ,并且必须将其导入。
目前的形式,你必须做
var MyClass = require('./MyClass').MyClass;
var t = new MyClass();
console.log(t.allValues());
或者您可以将其导出为默认导出:
export default MyClass;
在这种情况下你可以做到
var t = require('./MyClass');
(至少与巴别塔一起)