Javascript 用于创建的导出类与导出函数

Javascript 用于创建的导出类与导出函数,javascript,Javascript,我注意到一些库向用户公开函数以创建实例,而另一些库则直接公开类。例如,Vue.js使用new Vue(…)创建一个新实例,Express.js使用Express()进行初始化。目前我正在为我的公司写一个图书馆,我不能决定我应该选择哪一个。这两种设计风格的优缺点是什么?我更喜欢用什么呢?有些人就是不喜欢用new。这有多种原因,包括个人偏好。如果您想要保留内部机制,例如,如果您有一个工厂,您可以公开一个函数。最终,语法与您想要实现的目标没有多大关系,在Node.js中也没有多大关系。很多这样的事情都

我注意到一些库向用户公开函数以创建实例,而另一些库则直接公开类。例如,Vue.js使用
new Vue(…)
创建一个新实例,Express.js使用
Express()
进行初始化。目前我正在为我的公司写一个图书馆,我不能决定我应该选择哪一个。这两种设计风格的优缺点是什么?我更喜欢用什么呢?

有些人就是不喜欢用
new
。这有多种原因,包括个人偏好。如果您想要保留内部机制,例如,如果您有一个工厂,您可以公开一个函数。最终,语法与您想要实现的目标没有多大关系,在Node.js中也没有多大关系。很多这样的事情都是历史性的,因为在ES6(2015年发布)之前,定义类是语法地狱,很多开发人员倾向于使用纯函数来代替。@libik人仍然喜欢纯函数,如果他们不需要
class
继承,或者当他们包装实例化以进行在一个实例中不会发生的额外初始化时constructor@libik我觉得自ES6推出以来,纯函数的使用率有所上升。部分原因是更受欢迎,但总的来说,我认为从函数计算的角度来考虑JS的情况并不普遍。@VLAZ-这取决于你想开发Node.JS应用程序的哪一部分。所有常见的web框架和中间件都是基于函数的,将其作为类编写没有多大意义。与所有服务、控制器、存储库类似,您仍然需要类似于单例的行为,那么为什么还要在那里使用类呢。然而,在链的最后,使用类是有意义的-例如,Redis连接的实例,从DB获得的文档的实例。。。