Javascript:自调用单例函数与创建函数实例?
在javascript中显示模块模式时,哪一个更好:Javascript:自调用单例函数与创建函数实例?,javascript,revealing-module-pattern,Javascript,Revealing Module Pattern,在javascript中显示模块模式时,哪一个更好: 具有自调用函数,在呈现JS时只初始化一次,如下所示: 变量计算器=函数() { 加法=函数(x,y){ 返回x+y; }; 返回{add:add}; }(); document.getElementById(“输出”).innerHTML=calculator.add(5,3);; 3)一个简单的js对象: var calculator = { add(a,b){ return a+b; } }; aler
变量计算器=函数()
{
加法=函数(x,y){
返回x+y;
};
返回{add:add};
}();
document.getElementById(“输出”).innerHTML=calculator.add(5,3);;
3)一个简单的js对象:
var calculator = {
add(a,b){
return a+b;
}
};
alert(calculator.add(1,2))
由于您既不需要多个实例(第二种方法适用于多个实例),也不需要私有变量(闭包适用于多个实例),因此上一种方法可能是可行的。3)一个简单的js对象:
var calculator = {
add(a,b){
return a+b;
}
};
alert(calculator.add(1,2))
由于您既不需要多个实例(第二种方法适用于此),也不需要私有变量(闭包适用于此),因此上一种模式可能是最佳选择。第一种模式相当于单例模式。如果您想共享一些资源,您可以使用模块化模式创建单个实例,并让每个人都使用该实例。例如一个DBconnection@marvel308:内存分配如何?内存是如何分配给这两个的呢?我建议你去看看。阅读new关键字如何分配内存和关于垃圾回收第一种模式相当于单例模式。如果您想共享一些资源,您可以使用模块化模式创建单个实例,并让每个人都使用该实例。例如一个DBconnection@marvel308:内存分配如何?内存是如何分配给这两个的呢?我建议你去看看。阅读new关键字如何分配内存和关于垃圾收集我把情况简化了。。我只需要在这个对象中公开几个函数,所以需要返回。我将编辑这个问题。我只想了解内存分配在1、2或3中是如何工作的,这样我就可以在需要时选择这些needed@maverick井2实际上不是一个构造函数,而是一个工厂。@maverick你不能比较它们,因为它们是为不同的问题而设计的。对他们进行比较是没有意义的,因为我把情况简单化了。。我只需要在这个对象中公开几个函数,所以需要返回。我将编辑这个问题。我只想了解内存分配在1、2或3中是如何工作的,这样我就可以在需要时选择这些needed@maverick井2实际上不是一个构造函数,而是一个工厂。@maverick你不能比较它们,因为它们是为不同的问题而设计的。比较它们毫无意义