var Singleton = (function(){
var instance;
var init = function(){
var privateTest = function(){
console.log('i am a instance!');
};
return {
test: privateTest
};
};
return {
getInstance: function(){
if ( !instance) {
instance = init();
};
return instance;
}
};
})();
var s1 = Singleton.getInstance();
var s2 = Singleton.getInstance();
s1.test();
s2.test();
console.log(s1 === s2);
//反例
var Singleton2 = (function(){
var instance;
var init = function(){
var privateTest = function(){
console.log('i am a instance!');
};
return {
test: privateTest
};
};
return {
getInstance: init
};
})();
var s3 = Singleton2.getInstance();
var s4 = Singleton2.getInstance();
s3.test();
s4.test();
console.log(s3 === s4);