我正在为模块、工厂函数和构造函数的概念而奋斗.
我最好奇的是模块和工厂功能的区别,以及什么时候使用什么?
发布于 2020-08-14 19:11:51
模块和工厂函数之间的主要区别比您想象的要简单。
模块只是带有可以导入/导出的代码块的文件。
而工厂函数是创建对象并返回它们的函数。此外,您可能还会发现另一个堆栈溢出帖子,它解释了构造函数与工厂函数:
发布于 2022-09-09 18:12:49
我认为上面的解释对建筑工人来说是很好的。我刚开始使用javascript,但我只是问自己这个问题,并对其进行了一些阅读。对于工厂函数和模块模式之间的区别,我认为这可以归结为一些语法(这决定了使用)。希望下面的内容正确地解释了这一点:
> const Factoryfunction = (parameters) => {
> const/let/var properties = values
> const methods = (parameters) => {
> //do stuff
> }
> return {public variables and methods} },<
const modulePattern = ((parameters) => {
const/let/var properties = values
const methods = (parameters) => {
//do stuff
}
return {public properties and methods}}();<
模块模式:
据我所知,结尾处的一小部分括号改变了前面的代码块的工作方式。使用括号,您可以访问所创建的任何公共方法或属性。您还可以在模块中创建私有方法和属性,以加强对模块的使用/进行更复杂和有组织的工作的控制。这些公共属性/方法可以在各种上下文中使用。您还可以通过外部定义的方法更新模块中的属性,如果该属性是return (public)。现在,您可以使用模块的声明名称调用这些方法:
modulePattern.publicMethod();
console.log(publicProperty)工厂职能:
在末尾没有(),您可以使用一个工厂函数来创建新对象,而不需要与构造函数一起使用的" new“关键字:
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
https://stackoverflow.com/questions/63418573
复制相似问题