首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模块和工厂功能有什么区别?

模块和工厂功能有什么区别?
EN

Stack Overflow用户
提问于 2020-08-14 18:54:33
回答 2查看 1.1K关注 0票数 1

我正在为模块、工厂函数和构造函数的概念而奋斗.

我最好奇的是模块和工厂功能的区别,以及什么时候使用什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-14 19:11:51

模块和工厂函数之间的主要区别比您想象的要简单。

模块只是带有可以导入/导出的代码块的文件。

而工厂函数是创建对象并返回它们的函数。此外,您可能还会发现另一个堆栈溢出帖子,它解释了构造函数与工厂函数:

Constructor function vs Factory functions

票数 2
EN

Stack Overflow用户

发布于 2022-09-09 18:12:49

我认为上面的解释对建筑工人来说是很好的。我刚开始使用javascript,但我只是问自己这个问题,并对其进行了一些阅读。对于工厂函数和模块模式之间的区别,我认为这可以归结为一些语法(这决定了使用)。希望下面的内容正确地解释了这一点:

代码语言:javascript
复制
> const Factoryfunction = (parameters) => {
>      const/let/var properties = values
>      const methods = (parameters) => {
>           //do stuff
>      }
>      return {public variables and methods} 

},<

代码语言:javascript
复制
const modulePattern = ((parameters) => {
     const/let/var properties = values
     const methods = (parameters) => {
          //do stuff
     }
     return {public properties and methods}

}();<

模块模式:

据我所知,结尾处的一小部分括号改变了前面的代码块的工作方式。使用括号,您可以访问所创建的任何公共方法或属性。您还可以在模块中创建私有方法和属性,以加强对模块的使用/进行更复杂和有组织的工作的控制。这些公共属性/方法可以在各种上下文中使用。您还可以通过外部定义的方法更新模块中的属性,如果该属性是return (public)。现在,您可以使用模块的声明名称调用这些方法:

代码语言:javascript
复制
modulePattern.publicMethod();
console.log(publicProperty)

工厂职能:

在末尾没有(),您可以使用一个工厂函数来创建新对象,而不需要与构造函数一起使用的" new“关键字:

代码语言:javascript
复制
const object = factoryFunction (parameters)

console.log(object.property)// logs property defined in factory function but based on new parameters

object.method()// calls the method defined in factory function which is now adjusted to new parameters (if that's how they work)

工厂功能和模块模式都有以下优点:

组织代码,提高可读性和逻辑流,清理窗口的命名空间(google作用域和闭包)和我最喜欢的,能够定义属性或方法是私有的还是公共的(这有利于安全性和可调试性,以及更多的代码)。此外,减少重复使用和回收。

这是我对Stack的第一次贡献!希望能帮上忙!

这是我学到的所有东西:https://www.theodinproject.com/lessons/node-path-javascript-factory-functions-and-the-module-pattern

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63418573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档