Singleton pattern limits the number of instances of a particular object to just one while providing a global access point to this instance.

Singletons reduce the need for global variables, which avoids the risk of name collisions.

In the example below, we check in the constructor() { … } if an Animal instance exists or if we need to create a new one.

class Animal {

constructor() {
if (typeof Animal.instance === 'object') {
return Animal.instance;
Animal.instance = this;
return this;

export default Animal;

You can see that code in action on Stackblitz here:

I hope you found it useful. Thanks for reading. 🙏

Let’s get connected! You can find me on: