2017-10-30 5 views
0

JavaScriptでは、ページを参照することなくクラスをインポートすることはできません。これは私にとっては醜いようです。ファイル名のないクラスをインポートする

"DashboardPage"というクラスがあります。これは、 "DashboardPage.js"というファイル名内にあります。

私がクラスをインポートするためには、ファイル内のクラスをエクスポートして別のファイルにインポートする必要があります。 Like

module.exports.DashboardPage = DashboardPage;//Export 

var DashboardPage = require("DashboardPage");//Import 

ここで、新しいDashboardPageを作成したいとき。私は行く必要があります:

//Here is the problem. Why do I have to call the file name then the object. 
var page = new DashboardPage.DashboardPage(); 

私はここで何か愚かなことをしていますか?これは愚かなようだ。私はC#の背景から来て、私はこれを間違った方法で行っているかもしれません。

答えて

1

これはJavaScriptではなく、CommonJSモジュールシステムでクラスで何もする必要はありません。

requireは、module.exportsに割り当てられた値を返します。だから、あなたも直接module.exportsに割り当てることで、値をエクスポートすることができます。

module.exports = DashboardPage; 

あなたは

var DashboardPage = require("DashboardPage"); 

DashboardPageを行うときに、すでにあなたのクラスであり、あなたがnew DashboardPage()を呼び出すことによって、新しいインスタンスを作成します。

+0

こんにちはフェリックス、あなたの答えに感謝します。もう一つの質問ですが、おそらくあなたはその答えを知っています。 var LoginPage = new require( "LoginPage"); var Page = new LoginPage(); 上記2行のコードは、1行のコードに入れることができますか? 種類: var page =新しい必須( "LoginPage")(); ???? –

+0

はい。変数に代入された値を生成した式で、常に変数を代入することができます。 –

関連する問題