Mam problem z ustaleniem najlepszego sposobu realizacji tego.Odsłaniając wzorzec modułu z konstruktorem
Chcę moduł, który ma konstruktora, który przyjmuje argument, który przechowuje go do późniejszego wykorzystania w module.
var ModuleB = function(moduleA) {
this.moduleA = moduleA;
}
ModuleB.prototype = function() {
//private stuff/functions
function someMethod() {
moduleA.doSomething();
}
//public api
return {
someMethod : someMethod
};
}();
w jakiś inny plik
//ModuleA defined elsewhere
var moduleA = new ModuleA();
//...
var module = new ModuleB(moduleA);
module.someMethod();
Teraz powyżej w someMethod
, moduleA jest niezdefiniowana, a this
, to globalny okno przedmiot. Czy ktoś może wyjaśnić, w jaki sposób uzyskać dostęp do modułu A? Nie rozumiem, co stanie się z this.moduleA = moduleA;
po konstruktorze. Nie jestem programista javascript więc jeśli używam niewłaściwego wzorca tutaj lub coś, nie krępuj się kurant
Zaktualizowałem przykład, aby było bardziej zrozumiałe. –
@Chase Jedynym powodem, dla którego fiddle działa, jest to, że 'moduleA' jest globalne. – jbabey