为什么在ES6模块中导出的对象有未定义的方法?

时间:2015-07-23 23:52:25

标签: node.js ecmascript-6 babeljs

我在ES6模块中定义了一个ES6类,它导出该类的实例

class MyObject {
  constructor() {
    this.propertyA = 1;
    this.propertyB = 2;
  }

  myMethod() {
    doStuff();
  }
}

var theInstance = new MyObject();
export default theInstance;

导入此模块时,myMethodundefined

import * as theObject from './my/module';

theObject.myMethod(); // Error! undefined is not a method.

构造函数中定义的属性存在。就好像排除了对象的原型,只导出了成员

我要求'babel/register'

为什么导出此对象无法正常工作?

1 个答案:

答案 0 :(得分:7)

我问了之后我才知道这件事。看起来import * as foo from 'module'import foo from 'module'之间存在差异。这有效:

import theObject from './mymodule';

所以这不是导出错误的问题,而是导入错误。