【发布时间】:2017-08-31 10:40:31
【问题描述】:
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,返回:TypeError: single1 is undefined, 但是,如果我删除了该函数的 IIFE 环绕,它会完美运行,所以我不明白这是为什么?
【问题讨论】:
标签: javascript design-patterns singleton iife