The singleton mode is also called the monad mode, and more commonly it is also called the singleton mode. It is a relatively simple but most commonly used design pattern in software design.
Introduction to singleton mode:
When applying the singleton pattern, the class that generates the singleton must ensure that only one instance exists. In many cases, the entire system only needs to have one global object to coordinate the overall behavior of the system. For example, in the configuration file of the entire system, the configuration data has a singleton object for unified reading and modification. When other objects need configuration data, they also obtain the configuration data through this singleton object. This can simplify the configuration in complex environments. Configuration management.
The idea of the singleton pattern is: a class can return a reference to an object (and it will always be the same) and a method to obtain the instance (static method, usually using the getInstance name). Then when we call this method, if the reference held by the class is not empty, the reference will be returned. Otherwise, an instance of the class will be created, and the instance reference will be assigned to the reference held by the class and then returned. At the same time, define the constructor of the class as a private method to prevent other functions from using the constructor to instantiate the object, and only obtain the only instance of the class through the static method of the class.
Generally, Javascript generates an instance every time a new object is created, and the instance points to a different address. Like this:
(function(){ function Person(name){ this.name = name; } Person.prototype.work = function(){ console.log(this.name + " is working"); } var p1 = new Person("Darren"); p1.work(); var p2 = new Person("Jack"); p2.work(); }());
Above, every time a new Person object is created, it will be different.
How to implement singleton pattern in Javascript?
--When generating an object, first determine whether it exists. If it exists, the object will not be generated; if it does not exist, the object will be generated.
(function(){ var PersonSingleton = (function(){ var instance; function init(){ return { name: 'Anonymous', work: function(){ console.log(this.name + ' working'); } }; } return { getInstance: function(){ if(!instantiated){ instantiated = init(); } return instantiated; } } })(); var p1 = PersonSingleton.getInstance(); p1.work(); var p2 = PersonSingleton.getInstance(); p2.work(); }());
Above, the instance obtained through the getInstance method of the PsonSingleton object is the same every time.
That’s all the relevant knowledge about JavaScript singleton mode is introduced here. I hope it will be helpful to everyone.