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() {
x++;
// oder alternative so ansprechen
globalThis.x++;
}
}
let mut = new myClass();
mut.mutateExternal();
console.log(x); // Ausgabe ist 3
globalThis wird inzwischen überall unterstützt.
Gruss Michael