哪一個是更好地在JavaScript中透出模塊化模式來實現:Javascript:自調用單例函數vs創建函數的實例?
- 有自調用函數,這將在JS被渲染的時間內得到intialized只有一次,就像這樣:
<div id="output">
</div>
<script>
var calculator = function()
{
add = function(x,y){
return x+y;
};
return { add:add };
}();
document.getElementById("output").innerHTML = calculator.add(5,3);;
</script>
- 有一個構造做此類似:
<div id="output">
</div>
<script>
var calculator = function()
{
add = function(x,y){
return x+y;
};
return { add:add };
};
document.getElementById("output").innerHTML = new calculator().add(5,3);
</script>
在1日,好處我讀的是每個函數只會被初始化一次,而在2日,我們將有一個功能副本初始化每個對象。
但是,第一個問題是,它會做一些工作,使JS加載時間內的單一副本。
我很困惑爲什麼我們在case2的內存中有多個函數副本,因爲內存應該分配給變量而不是函數。
以下哪兩種方法是正確的以及如何決定在何時選擇?
第一個模式相當於單例模式。如果您想分享一些資源,您可以使用模塊化模式創建單個實例,並讓每個人都使用該實例。例如數據庫連接 – marvel308
@ marvel308:內存分配情況如何?內存如何分配給這兩個? – maverick
我建議通過https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management。並閱讀新關鍵字如何分配內存和垃圾回收 – marvel308