URL: https://linuxfr.org/forums/programmationweb/posts/singleton-en-js Title: Singleton en Js Authors: romu Date: 2016年03月09日T10:55:14+01:00 License: CC By-SA Tags: javascript, pattern et singleton Score: 0 Bonjour, Tout d'abord, je poste ici car il n'y a apparemment aucun forum dédié Js, c'est dommage car on peut faire autre chose que tu web en Js il me semble. Bref, Js, je débute, et pour être franc, ça me rebute un peu. Je trouve ce langage très difficile à appréhender, notamment par le manque de recommandations officielles et claires, mais passons. Et comme je débute, quoi de mieux que de commencer au début du langage. Je me posais hier la question : mais comment pourrais je faire un singleton en Js. Une petite recherche sur Qwant (c'est aussi mon ami) et je tombe sur ce fil : [http://stackoverflow.com/questions/1635800/javascript-best-singleton-pattern](http://stackoverflow.com/questions/1635800/javascript-best-singleton-pattern). Ces codes sont assez moches, et horriblement long pour faire juste un singleton. Alors, j'ai écris ce bout de code, qui me semble faire très bien l'affaire, j'explique en dessous. ```js 'use strict'; var singleton = (function () { var counter = 0; return { getName: function () { return "singleton"; }, getCounter: function () { return counter; } }; })(); ``` Si j'ai bien tout codé et compris : c'est une fonctione anonyme, qui est immédiatement invoquée (IIFE dans le jargon) et qui retourne un objet qui possède 2 méthodes (getName et getCounter). Comme la méthode est anonyme, elle ne peut plus être exécutée par ailleurs, et comme elle est "auto-exécutée" une seule fois, mon objet "singleton" est unique. Notons que la fonction "getCounter" permet d'accéder à un membre privé, ici "counter". On a donc de l'encapsulation en plus. J'ai bon ?? Merci de vos avis sur la question, partage d'info, etc. PS : Je n'arrive à indenter la ligne "var counter = 0;" avec le l'étiquette "code" du forum, désolé.