2017-03-12 6 views
0

JS私はそうのように、 'ヘッダ' 配列のヘッダタイトルごとに列をインスタンス化したい:インスタンス化 -

const Column = require('./Column.js') 

let columns = [] 

console.log(headers) // ['Name', 'Address', 'Phone'] 
headers.forEach(function(header){ 
    columns.push(new Column(`${header}`)) 
}) 

console.log(columns) //[] 
index.js

class Column{ 
    constructor(column_name){ 
     this.name = column_name 
    } 
} 

column.js

しかし、列配列をチェックすると、実際に列がインスタンス化されることはありません。何が起こっているのか、それを修正する方法は不明です。

+0

これは、 'headers'配列の内容に大きく依存するようです。 – Pointy

+1

私の推測では、 'headers'は空です(かなりPointyの推測です)。 –

+1

この[jsfiddle](https://jsfiddle.net/bs4q15cc/)はコードが動作することを確認するため、上記のコメントやあなたが示していないその他のコードで説明されている問題でなければなりません。 –

答えて

-1

Columnクラス定義の下にこれを入れてみてください:

export default Column; 

JSモジュールは、好きではないと言う、彼らの最も簡単な呼び出しでちょうどあなたが全体のファイルの名前空間をインポートできるようにするPythonモジュール。代わりに、importは明示的にexportになっている値を見ることしかできません。また、そのスコープをさらに絞り込むこともあります。ドキュメントをチェックアウト:この場合https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export

をあなたが(別のユーザーが指摘したように仕事をして)同じファイルにColumnを定義するときに何が起こるかを確認するためにあなたに手がかりを与えて、TypeError: Column is not a constructorを見てきたはずです。

関連する問題