var singleton = (function(){ var instance; return function () { if (instance) return instance; instance = this; return instance; } }()); var obj = new singleton(); var obj2 = new singleton(); console.log(obj2 === obj); // true
var printer = (function() { var printerInstance; function create() { function print() {} function turnOn(){} return { print: print, turnOn: turnOn }; } function Singleton() { if (!printerInstance) { printerInstance = create(); } return printerInstance; } return { getInstance: Singleton(); }; }());