What is the proper way to create singleton in JS since ES2015? I know of many ways such as:
(() => {
  let instance;
  class Singleton{
    constructor(){
     instance = instance || this;
    }
  }
window.Singleton = Singleton; // or sth to export this class
})();
var a = new Singleton();
var b = new Singleton(); // a is the same as b
But it doesn't seem like a good way to use "new" operator with a Singleton class. So my question is whether there is a "proper" way to create a Singleton in ES6
 
     
    