Ich habe ein wenig Mühe, herauszufinden, wie dies am besten umgesetzt werden kann.Enthüllung des Modulmusters mit einem Konstruktor
Ich möchte ein Modul, das einen Konstruktor hat, der ein Argument übernimmt, das es für die spätere Verwendung innerhalb des Moduls speichert.
var ModuleB = function(moduleA) {
this.moduleA = moduleA;
}
ModuleB.prototype = function() {
//private stuff/functions
function someMethod() {
moduleA.doSomething();
}
//public api
return {
someMethod : someMethod
};
}();
In einer anderen Datei nun über
//ModuleA defined elsewhere
var moduleA = new ModuleA();
//...
var module = new ModuleB(moduleA);
module.someMethod();
in someMethod
ist moduleA undefiniert und this
, ist das globale Fensterobjekt. Kann mir jemand erklären, wie ich Zugang zu ModulA bekomme? Ich verstehe nicht, was mit this.moduleA = moduleA;
nach dem Konstruktor passiert. Ich bin nicht wirklich ein Javascript-Entwickler so, wenn ich das falsche Muster hier oder etwas bin mit, fühlen Sie sich frei in läuten
Ich aktualisierte das Beispiel, um es klarer zu machen –
@Chase der einzige Grund, dass Geige funktioniert, ist, weil 'moduleA' global ist. – jbabey