ebody: JS OOP - Private Eigenschaft

Beitrag lesen

Hallo,

in diesem Beispiel verwende ich eine private Eigenschaft. Im Script selbst kann man nicht von außen (über die Instanz) drauf zugreifen. Gibt man aber in der Chrome WebDev Konsole circle.#_color ein, erhält man den Wert.

Das ist schlecht oder? Oder wie ist das zu bewerten? Nehmen wir an, du als Senior Programmierer stellst eine solche Probeaufgabe und man soll eine Klasse mit einer privaten Eigenschaft erstellen und es würde so umgesetzt.

Wie würdest du das bewerten? Ist es

  1. komplett falsch?
  2. Unverantwortlich?
  3. Ok, gibt aber bessere Möglichkeiten wie WeakMap().
  4. Ist richtig so.
class Circle {
	#_color;
	constructor(radius) {
		this.radius = radius;
		this.#_color = 'red';
	}
}

const circle = new Circle(6);
console.log(circle.radius); // 6
console.log(circle.#_color); // Uncaught SyntaxError: Private field '#_color' must be declared in an enclosing class 

Gruß ebody