Singleton Pattern in JavaScript

S
Published in: JavaScript

In the Singleton Pattern in JavaScript, there is exactly one instance of a class and there is no way to create multiple instances of the same class. Singleton objects are generally used to manage global state in an application.

let firebaseInstance = null;
export const getFirebase = () => {
  if (firebaseInstance !== null) {
    return firebaseIntance;
  }

  firebase.initializeApp(config);
  firebaseInstance = firebase;
  return firebaseInstance;
}

Using ES6 Classes

let singletonInstance = null;
class Singleton {
  constructor() {
    if (!singletonInstance) {
      singletonInstance = this;
      console.log("Instance created");
    }
    return singletonInstance;
  }
}
const singletonObject = new Singleton();

Using ES7 Classes

class Singleton {
  static singletonInstance = null;
  static getSingletonInstance() {
    if (!Singleton.singletonInstance) {
      Singleton.singletonInstance = new Singleton();
      console.log("Instance created");
    }
    return Singleton.singletonInstance;
  }
}
const singletonObject = Singleton.getSingletonInstance();
Published in: JavaScript

Looking for something? Find here!

Meet the Author

Web Geek, Tech Columnist
A
Amit Agarwal

Amit Agarwal is a Google Developer Expert in GSuite and Google Apps Script. He holds an engineering degree in Computer Science (I.I.T.) and is the first professional blogger in India. Read more on Lifehacker and YourStory

Get in touch