2016-08-12 62 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

您是打算在每次使用時創建一個對象實例還是一個新實例? – Trendy

+0

更新了我的問題,這應該是一個單身人士 – Vic

回答

-1

如果它是一個單例,只導出對象。你應該像下面那樣導出這個類,並且只有當你多次使用它時。 (畢竟一類的一點是,它應該像創建多個對象的模板功能)

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

你的第二個選項應該適用於單身,這就是我正常使用。從費利克斯的評論,我得到的模塊是單身的,選項1也可以。我仍然傾向於採用第二種選擇,因爲代碼使得我非常清楚地使用單例。

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

export default myUtils; 
+1

第一個選項每次都創建一個新對象嗎?我用'console.log'添加了一個'constructor',並將它導入到多個文件中,並且只打印一次? – Vic

+1

@Vic:模塊只評估一次。 –

1

通常導出一個對象作爲默認導出有點反模式。你最好的選擇是做

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

然後做

import * as utils from "./utils"; 

完全避免創建對象,並依靠模塊對象本身作爲你的命名空間。