Klassenbasierte Programmierung - wie umgehen mit externen, globalen Werten?
bearbeitet von
Hallo,
mein Senf zum Ausgangsbeispiel wäre wie folgt. Ja, man kann **globale** Variablen in einer Klassen verwenden, dafür sollte man aber diese auch als solche mit "globalThis" deklarieren/ansprechen. Und zudem sollte sichergestellt sein, dass es wirklich eine globale Variable ist, d.h. diese muss immer global verfügbar sein, wenn die Klasse verwendet wird. Über Sinn und Unsinn entscheidet das Gesamtdesign.
Alos konkret:
~~~
globalThis.x = 1;
class myClass {
constructor(y) {
this.y = y;
}
mutateExternal() {
globalThis.x++;
}
}
let mut = new myClass();
mut.mutateExternal();
console.log(x); // Ausgabe ist 2
~~~
[globalThis](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis) wird inzwischen überall unterstützt.
Gruss Michael