Da una singola istanza e un punto di vista di più istanze, perché dovrei scrivere tutte quelle righe aggiuntive di codice seguendo il Pattern modulo vs semplicemente utilizzando un Costruttore standard con metodi e proprietà definiti nel corpo del costruttore?Modello modulo JavaScript rispetto a Costruttore con metodi definiti nel costruttore
Modulo modello di esempio: http://jsfiddle.net/T3ZJE/1/
var module = (function() {
// private variables and functions
var foo = 'bar';
// constructor
var module = function() {
};
// prototype
module.prototype = {
constructor: module,
something: function() {
}
};
// return module
return module;
})();
var my_module = new module();
console.log(my_module)
Costruttore campione: http://jsfiddle.net/EuvaS/2/
function Module(){
// private variables and functions
var foo = 'bar';
//public methods
this.something = function() {
}
}
var my_module = new Module();
console.log(my_module);
Per me il risultato finale è praticamente la stessa. Entrambi possono avere proprietà e metodi pubblici, entrambi possono avere variabili e metodi "privati" a cui è possibile accedere con metodi pubblici.
Entrambi definiranno i metodi public/prototype una volta per un singleton, entrambi li definiranno più volte per più istanze/cloni dell'oggetto.
Mi manca qualcosa? Qual è la differenza?
Questa è davvero una differenza importante. – Fergal
Per poops e risatine, questa leggera modifica al metodo Constructor creerà vars private statiche E definirà i nostri metodi pubblici una sola volta consentendo loro l'accesso a tutti i private vars nell'ambito Constructor: http://jsfiddle.net/zHwQX/2/ – Fergal
@Fergal buon punto, non l'ho visto neanche io. Quindi immagino che in generale, più funzionalità e un minore ingombro di memoria – Damp