Aus einer einzigen Instanz und einer Vielzahl von Instanzen, warum würde ich alle diese zusätzlichen Codezeilen nach dem Modul Muster vs nur mit einem Standard-Konstruktor mit Methoden und Eigenschaften definiert schreiben im Konstruktorkörper?JavaScript-Modul Muster vs Konstruktor mit Methoden im Konstruktor definiert
Modul Pattern Beispiel: 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)
Constructor Beispiel: 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);
Für mich ist das Ergebnis Ende ist so ziemlich das gleiche. Beide können öffentliche Eigenschaften und Methoden haben, beide können "private" Variablen und Methoden haben, auf die mit den öffentlichen Methoden zugegriffen werden kann.
Beide definieren öffentliche/Prototyp-Methoden einmal für einen Singleton, beide definieren sie mehrfach für mehrere Instanzen/Klone des Objekts.
Fehle ich etwas? Was ist der Unterschied?
Das ist in der Tat ein wichtiger Unterschied. – Fergal
Für Poops und Kichern, diese leichte Änderung an der Konstruktor-Methode wird statische private vars erstellen UND nur unsere öffentlichen Methoden einmal definieren, während sie auf alle privaten vars im Constructor-Bereich zugreifen können: http://jsfiddle.net/zHwQX/2/ – Fergal
@Fergal guten Punkt, habe ich auch nicht gesehen. Also denke ich insgesamt, mehr Funktionalität und kleinerer Speicherbedarf – Damp