1. Définition
Garantir qu'une classe n'a qu'une seule instance et lui fournir un point d'accès global.
Lorsque vous cliquez sur le bouton de connexion, une fenêtre flottante de connexion apparaît sur la page. Cette fenêtre flottante de connexion est unique. Peu importe le nombre de fois que vous cliquez sur le bouton de connexion, cette fenêtre flottante ne sera créée qu'une seule fois. à utiliser comme modèle singleton à créer.
2.Principe de mise en œuvre
Il n'est pas compliqué d'implémenter un singleton. Utilisez une variable pour marquer si un objet a été créé pour une certaine classe. Si tel est le cas, l'objet précédemment créé sera renvoyé directement la prochaine fois que vous obtiendrez une instance de la classe.
3. Faux Singleton
Les variables globales ne sont pas en mode singleton, mais dans le développement JavaScript, nous utilisons souvent des variables globales comme singletons.
var a = {};
Réduire la pollution de dénomination causée par les variables globales
(1) Utiliser l'espace de noms
var namespace1 = { a: function(){}, b: 2 }
(2) Utilisez des fermetures pour encapsuler des variables privées
var user = (function() { var _name = 'lee', _age = '25'; return { getUserInfo: function() { return _name + ":" + _age; } }; })();
4. Singleton paresseux : créez des instances d'objet uniquement lorsque cela est nécessaire
var getSingle = function(fn) { var result; return function() { return result || (result = fn.apply(this, arguments)); }; }; // 测试 function testSingle(){} getSingle(testSingle)() === getSingle(testSingle)(); // true
5. Supplément :
(1) Chargement paresseux
var lazyload = function() { console.log(1); lazyload = function() { console.log(2); } return lazyload(); } lazyload();
(2) Préchargement
var preload = (function() { console.log(1); preload = function() { console.log(2); }; return preload; })(); preload();
J'espère que cet article sera utile à tous ceux qui apprennent la programmation JavaScript.