Gilles
Blogger
Hallo Leute,
ich habe ein Logging-Framework geschrieben mit dem ich mir Log-Objekte erstellen kann. Das sieht ungefähr so aus
in der Logger-Factory wird nun ein Logger-Objekt mit den passenden Konfigurationen erstellt. Das wird dann ungefähr so abgespeichert.
Jetzt hab ich auch so einen tollen Logger mit all seinen Einstellungen in der Factory liegen. Die Factory ist über das window Objekt registriert, damit ich in jedem meiner Objekte darauf Zugriff habe.
Nun sehen meine "Klassen"-Objekte in vereinfachter Weise so aus:
Nun passiert folgendes bei loggerfactory.getLogger
Diese Logger-Instanz verwende ich nun in mehreren Komponenten. Wenn ich dann die Option setOptions aufrufe wird der Name auch in den anderen Komponenten geändert, da ich immer auf das gleiche Objekt zugreife.
Nun meine eigentliche Frage. Kann ich nicht irgendwie ein geklontes Objekt zurückgeben?
Ich habe bereits gegoogled, aber bisher nur Varianten gefunden, die mir das Objekt mit seinen globalen Variablen kopiert (Quasi alles was über objectname.varname ansteuerbar ist). Leider benutze ich auch lokale Variablen in dem Objekt.
Kennt jemand von euch da einen Kniff? :)
ich habe ein Logging-Framework geschrieben mit dem ich mir Log-Objekte erstellen kann. Das sieht ungefähr so aus
Code:
window.loggerfactory.addLogger("logid",{
"level" : "debug"
"appender" : new ConsoleAppender(),
"logName" : "AppName"
});
in der Logger-Factory wird nun ein Logger-Objekt mit den passenden Konfigurationen erstellt. Das wird dann ungefähr so abgespeichert.
Code:
this.logger['logid'] = new Logger({
"level" : "debug",
"appender" : consoleAppenderObject,
"logName" : "AppName"
});
Jetzt hab ich auch so einen tollen Logger mit all seinen Einstellungen in der Factory liegen. Die Factory ist über das window Objekt registriert, damit ich in jedem meiner Objekte darauf Zugriff habe.
Nun sehen meine "Klassen"-Objekte in vereinfachter Weise so aus:
Code:
function Komponente(_config) {
var log;
var options = {
"debug" : "logId",
"logName" : "KomponentenName"
};
var construct = function(config) {
log = window.loggerfactory.getLogger(options.debug);
log.setOptions({"logName" : options.logName});
};
var doIt = function() {
log.debug("Hello World");
};
construct(_config);
};
Nun passiert folgendes bei loggerfactory.getLogger
Code:
this.getLogger = function(id) {
return this.logger[id];
};
Diese Logger-Instanz verwende ich nun in mehreren Komponenten. Wenn ich dann die Option setOptions aufrufe wird der Name auch in den anderen Komponenten geändert, da ich immer auf das gleiche Objekt zugreife.
Nun meine eigentliche Frage. Kann ich nicht irgendwie ein geklontes Objekt zurückgeben?
Ich habe bereits gegoogled, aber bisher nur Varianten gefunden, die mir das Objekt mit seinen globalen Variablen kopiert (Quasi alles was über objectname.varname ansteuerbar ist). Leider benutze ich auch lokale Variablen in dem Objekt.
Kennt jemand von euch da einen Kniff? :)