Antwort an „Michael_K“ verfassen

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

freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
?903

Vorschau

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

Schlagwort-Vorschläge

klicken, um das Schlagwort hinzuzufügen
  • keine Vorschläge verfügbar

ausgewählte Schlagwörter

klicken, um ein ausgewähltes Schlagwort zu entfernen
  • programmierstil
  • programmiertechnik

Die Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.