2016-10-10 17 views
5

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); 

を私はコンソールログは、空のオブジェクトを表示していしようとしています。 代わりに、私は取得しています - キャッチされない例外TypeError:_track.Track問題はあなたがindex.jsTrackを読み込む方法であるコンストラクタ

+2

インポートトラック './track' – Kevin

答えて

5

ではありません。

import Track from './track'; 

それともtrack.jsにあなたはこのようにそれをエクスポートする必要があります:

export {Track} 
8

あなたがデフォルトとしてTrackを輸出しているので、あなたは、デフォルトのインポートを使用する必要がありますが、このようないずれかのインポートする必要があります。あなたはあなたが(トラッククラスである)エクスポートされたオブジェクトのTrackプロパティにアクセスしようとしている操作を行うと

import { Track } from './track'; 

import Track from './track'; 

には What is "export default" in javascript?


を参照してください変更し、これは未定義です(コンストラクタではありません)。

関連する問題