var singleton = (function(){
var instance;
function init(){
var privateVariable = 'Private'
var privateMethod = function(){ console.log('Am private');}
return {
publicField : 'Public',
publicMethod : function(){ console.log('Am public');},
randomVar : Math.random()
};
};
return function(){
if(!instance) { instance = init(); }
else { return instance; }
}
})();
var single1 = singleton();
var single2 = singleton();
console.log(single1.randomVar == single2.randomVar);
應返回true,返回:類型錯誤:single1是不確定的, 但如果我刪除周圍的功能IIFE包裝,它完美的作品所以,我沒有得到這是爲什麼?不知道我的單身設計模式是什麼?
我很抱歉,但我仍然困惑爲什麼當我刪除了iife它的工作即使沒有return語句 '恢復功能(){ 如果(!實例) {instance = init(); } else {instance; ' }' –