2016-08-12 29 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"; 

完全避免创建对象,并依靠模块对象本身作为你的命名空间。