Dieses Mal werde ich Ihnen die Schritte zur Implementierung des Einzelfallmodus in JS ausführlich erläutern. Was sind die Vorsichtsmaßnahmen für die Implementierung des Singleton-Modus in JS? ist ein praktischer Fall.
Traditionelles Singleton-Muster
Stellen Sie sicher, dass es nur eine Instanz einer Klasse gibt, und stellen Sie einen globalen Zugriffspunkt darauf bereit.
Implementieren Sie die Kernidee von Singleton
Es ist nichts weiter als die Verwendung einer Variablen, um zu markieren, ob ein Objekt für eine bestimmte Klasse erstellt wurde. Wenn dies der Fall ist, wird beim nächsten Abrufen der Instanz der Klasse direkt das zuvor erstellte Objekt zurückgegeben >JavaScript Um diese Idee energisch umzusetzen, sehen Sie sich bitte den Code an:
var Singleton = function( name ){ this.name = name; }; Singleton.prototype.getName = function(){ alert ( this.name ); }; Singleton.getInstance = (function(){ var instance = null; return function( name ){ if ( !instance ){ instance = new Singleton( name ); } return instance; } })();
verwenden wir einen JavaScript--Abschluss, um einen Singleton zu implementieren. Bitte sehen Sie sich den Code an:
var Createp = (function(){ var instance; var Createp = function( html ){ if ( instance ){ return instance; } this.html = html; this.init(); return instance = this; }; Createp.prototype.init = function(){ var p = document.createElement( 'p' ); p.innerHTML = this.html; document.body.appendChild( p ); }; return Createp; })(); var a = new Createp( 'sven1' ); var b = new Createp( 'sven2' ); alert ( a === b ); // true
-Konstruktor von Createp ist tatsächlich für zwei Dinge verantwortlich. Die erste besteht darin, das Objekt zu erstellen und die Initialisierungs-Init-Methode auszuführen, und die zweite besteht darin, sicherzustellen, dass nur ein Objekt vorhanden ist. Dieser Code hat unklare Verantwortlichkeiten. Jetzt müssen wir diese beiden Aufgaben trennen. Der Konstruktor ist für die Konstruktion des Objekts verantwortlich. Die Entscheidung, ob ein vorhandenes Objekt zurückgegeben oder ein neues Objekt erstellt werden soll, überlassen wir der Ausführung Tatsächlich geht es darum, eine Programmieridee zu erfüllen: das Prinzip der Einzelverantwortung. Diese Art von Code kann besser entkoppelt werden. Bitte beachten Sie den folgenden Code:
var Createp = function (html) { this.html = html; this.init(); }; Createp.prototype.init = function () { var p = document.createElement('p'); p.innerHTML = this.html; document.body.appendChild(p); }; var ProxySingletonCreatep = (function () { var instance; return function (html) { if (!instance) { instance = new Createp(html); } return instance; } })(); var a = new ProxySingletonCreatep('sven1'); var b = new ProxySingletonCreatep('sven2'); alert(a === b); //true
//单例模式抽象,分离创建对象的函数和判断对象是否已经创建 var getSingle = function (fn) { var result; return function () { return result || ( result = fn.apply(this, arguments) ); } };
Wie man die Groß-/Kleinschreibung des ersten Buchstabens durchführt, wenn Jackson einen JSON-String analysiert
localstorage und Sessionstorage So verwenden Sie
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Schritte zur Implementierung des Singleton-Modus in JS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!