dedlfix: Private Eigenschaften in statischen Methoden ansprechen

Beitrag lesen

problematische Seite

Tach!

Im Moment kann ich nicht ausprobieren. Würde dies funktionieren:

class Hero {
   static getSpeed(hero, speed) {
      return hero.#_power * speed;
   }
}

Wenn man es so schreibt und probiert

class Hero {
    #_power = 2;
    static getSpeed(hero, speed) {
        return hero.#_power * speed;
    }
}

const hero = new Hero();
console.log(Hero.getSpeed(hero, 5));

dann bekommt man 10 und keine Fehlermeldung. Aber warum will man solch ein Konstrukt bauen? Was ist der Sinn dahinter, eine Methode statisch zu machen, wenn man sie dann doch mit einer Instanz aufruft, und sie noch explizit übergeben muss?

Statische Methoden nehme ich, wenn eine Berechnung auszuführen ist, die nur im Kontext der Klasse sinnvoll ist. Die ist üblicherweise dann auch private. Öffentliche statische Methoden kann man im Prinzip auch als herkömmliche Funktion schreiben.

dedlfix.