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; ' }' –