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 {
name;
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: https://stackblitz.com/edit/vitejs-vite-an7es6?file=main.js
I hope you found it useful. Thanks for reading. š
Let's get connected! You can find me on:
- Medium: https://medium.com/@nhannguyendevjs/
- Dev: https://dev.to/nhannguyendevjs/
- Hashnode: https://nhannguyen.hashnode.dev/
- Linkedin: https://www.linkedin.com/in/nhannguyendevjs/
- X (formerly Twitter): https://twitter.com/nhannguyendevjs/
- Buy Me a Coffee: https://www.buymeacoffee.com/nhannguyendevjs
Top comments (0)