Attualmente conosco due modi per costruire singleton in JavaScript. Primo:Come creare un singleton JavaScript con un costruttore senza utilizzare return?
var singleton = {
publicVariable: "I'm public",
publicMethod: function() {}
};
E 'perfetto, tranne che non dispone di un costruttore, dove ho potuto eseguire codice di inizializzazione.
Secondo:
(function() {
var privateVariable = "I'm private";
var privateFunction = function() {}
return {
publicVariable: "I'm public",
publicMethod: function() {}
}
})();
La prima versione non ha proprietà private né avere un costruttore, ma è più veloce e più semplice. La seconda versione è più complessa, brutta, ma ha un costruttore e proprietà private.
Non ho bisogno di proprietà private, voglio solo avere un costruttore. C'è qualcosa che mi manca o sono i due approcci sopra gli unici che ho?
Il secondo approccio non è "brutto"; è una parte naturale della lingua. Essere in grado di creare funzioni con funzioni è una delle funzioni più potenti di Javascript. – Pointy