Instanzvariablen

benreis61

Neues Mitglied
Hallo,
lerne gerade JS. Dabei habe ich bei dem Thema "Instanzvariablen" ein Verständnis Problem.
Und zwar sie werden so definiert.

class Test{
static userCount = 0; // static variable

constructor(name) {
this.name = name; // instance variable
Test.userCount++;
}
}

Was mir nicht in den Kopf geht, ist, wo die Variable "name" definiert wird. Denn mit
this.name wird die ja adressiert.
So war das nämlich bisher bei den Sprachen, die ich gelernt hatte. Zb. Java, c, c++, ..

Danke für die Hinweise
 

LimDul

Top Contributor
Mit this.name wird sie definiert. Javascript ist eine Skript-Sprache mit einer dynamischen typisierung. Du brauchst da eine Variable nicht zu definieren, durch die Zuweisung eines Wertes wird sie automatisch definiert.
 

Oneixee5

Top Contributor
Grundsätzlich ist die Deklaration nicht notwendig. Man kann das Verhalten aber teilweise mit einem Strict-Mode erzwingen.
Javascript:
"use strict" // Strict-Mode

class Test {

  static userCount = 0; // static variable

  constructor(name) {
    this.name = name; // instance variable
    Test.userCount++;
  }
  
}
@see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode

Ich empfehle dir in JS selbst "nur" die Grundlagen zu lernen. Wenn du mit Klassen und Objekten arbeiten willst, dann solltest du zu TypeScript wechseln. Der Einstieg wird immer leichter, bspw. kann Node.js jetzt auch TypeScript direkt ausführen: https://samthor.au/2024/node-run-typescript/
Das erspart teilweise die, manchmal umständliche, Konfiguration.
 

Oben