7

想要在 ES6 javascript 中实例化一个模块并转换为 ES5。我正在我的项目中设置一个新类,即 es6 / webpack。我有 2 个文件:track.js,其中包含以下内容——

export default class Track {
  constructor() {
    this.o = {};
  }
}

另一个是 index.js——

import { Track } from './track';

const track = new Track();
console.log(track);

我试图让控制台日志显示一个空对象。相反,我得到 - Uncaught TypeError: _track.Track is not a constructor

4

2 回答 2

12

您正在Track默认导出,因此您应该使用默认导入。改变

import { Track } from './track';

import Track from './track';

请参阅javascript 中的“导出默认值”是什么?


当您这样做时,import { Track } from './track'您试图访问Track未定义的导出对象(即 Track 类)的属性(因此它不是构造函数)。

于 2016-10-10T19:00:35.770 回答
6

问题在于您导入的Track方式index.js。您需要像这样导入:

import Track from './track';

或者track.js你需要像这样导出它:

export {Track}
于 2016-10-10T19:00:11.397 回答