2016-08-12 7 views
4

エクスポートのベストプラクティスは何ですか?JavaScriptのエクスポートクラスまたはオブジェクト

class MyUtils { 
    print() {...} 
    convert() {...} 
} 
export default new MyUtils(); 

または:

const myUtils = { 
    print() {...} 
    convert() {...} 
} 
export default myUtils; 

それとも何か他のもの?

注:これはシングルトンである必要があり、これ以上の1以上のインスタンス

+1

あなたはクラスに対して次のことを行うことができます: 'export default class MyUtils {}' –

+0

1回の使用につき1つのインスタンスまたは新しいインスタンスを持つつもりはありますか? – Trendy

+0

私の質問を更新しました、これはシングルトンでなければなりません – Vic

答えて

-1

それはシングルトンだ場合は、単にオブジェクトをエクスポートします。以下のようにクラスをエクスポートする必要があります。クラスを複数回使用している場合に限ります。

export default class MyUtils { 
    print() {...} 
    convert() {...} 
} 
2

あなたの2番目のオプションは、シングルトンのために働く必要がありますし、それは私が通常使用するものである(すべての後にクラスのポイントは、複数のオブジェクトを作成するためのテンプレートのように機能すべきであるということです)。 Felixのコメントから、私はそのモジュールがシングルトンのものであり、オプション1も動作することを知っています。コードでは、シングルトンを使用する意図が非常に明確になっているため、2番目のオプションを使用する傾向があります。

const myUtils = { 
    print() {...} 
    convert() {...} 
} 

export default myUtils; 
+1

最初のオプションは毎回新しいオブジェクトを作成しますか?私は 'console.log'で' constructor'を追加し、それを複数のファイルにインポートしました。 – Vic

+1

@Vic:モジュールは一度だけ評価されます。 –

1

通常、オブジェクトをデフォルトの書き出しとしてエクスポートするのは、反パターンのビットです。あなたの非常に最良のオプションは完全にオブジェクトの作成を回避し、あなたの名前空間として機能するモジュールオブジェクト自体に依存する

import * as utils from "./utils"; 

を行い、その後

export function print() {...} 
export function convert() {...} 

を行うことであろう。

関連する問題