Privatsphäre im alten Stil in OOP in JavaScript
Die Deklaration privater Eigenschaften und Methoden
durch das Symbol # erschien in JavaScript
erst vor kurzer Zeit. Davor musste man
einen speziellen, kniffligen
Trick anwenden.
Der Kern dieses Tricks besteht darin, eine Vereinbarung zu treffen, dass die Namen privater Eigenschaften und Methoden mit einem Unterstrich beginnen müssen. In der Realität sind solche Namen nicht privat, aber wir vereinbaren, dass wir sie nicht von außerhalb der Klasse verwenden werden.
Lassen Sie es uns versuchen. Erstellen wir eine private Eigenschaft in diesem Stil:
class User {
constructor(name) {
this._name = name;
}
show() {
return this._name;
}
}
Erstellen wir ein Objekt der Klasse:
let user = new User('john', 'smit');
Rufen wir die Methode auf, die den Wert unserer Eigenschaft ausgibt:
console.log(user.show());
Der Versuch, von außerhalb der Klasse auf die Eigenschaft zuzugreifen, führt zu keinem Fehler:
console.log(user._name); // kein Fehler
Machen Sie im folgenden Code die Eigenschaften privat:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getName() {
return this.name;
}
getSalary() {
return this.salary;
}
}
Machen Sie im folgenden Code die Hilfsmethode privat:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + '€';
}
}