snippet programming
class Singleton { protected static instance: Singleton | null; protected constructor() { // <-- Important to make it *private* this.id = Math.random(); } public static getInstance(): Singleton { if (!Singleton.instance) { Singleton.instance = new Singleton(); } return Singleton.instance; } private id = 0; getId() { return this.id; } } const classes = [ Singleton.getInstance(), Singleton.getInstance(), Singleton.getInstance(), Singleton.getInstance(), ]; for (const c of classes) { console.log(`c: `, c); console.log(`c.id: `, c.getId()); console.log("----------------"); }