I was interested in javascript singleton-design-pattern. Here i got some patterns for the pattern.

  1. from viral patel blog.

var Sun = (function(){
              var sunInstance; //private variable to hold the
                               //only instance of Sun that will exits.

              var createSun = function(){
                         var privateMass = 10000000000; //private
                         var looseMass = function(mass){
                             privateMass -= mass;
                         var publicEmitLight = function(){
                                  //some complex Nuclear fission
                                  //calling looseMass()
                         var getMass = function(){
                                  return privateMass;
                         return {
                                emitLight: publicEmitLight,
                                getMass: getMass

              return {
                    getInstance: function(){
                              sunInstance = createSun();
                          return sunInstance;


The Sun variable will be assigned what this return statement evaluates to. And clearly, this evaluate to an object with only one property of type function: getInstance. So whenever we need to obtain an instance of sun in our code, all we do is use:

####patttern 2:

var singleton = (function() {
  var privateData = "foo"
  var privilegedMethod = function() {
    return privateData;

  var why = {
    not: "just",
    create: "a",
    literal: "object",
    with: privilegedMethod

  return why;

console.log(singleton.privateData); // => undefined
console.log(singleton.with()); // => "foo"

patttern 3. link Returning only instance.