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:
javascriptclass User {
constructor(name) {
this._name = name;
}
show() {
return this._name;
}
}
Erstellen wir ein Objekt der Klasse:
javascriptlet user = new User('john', 'smit');
Rufen wir die Methode auf, die den Wert unserer Eigenschaft ausgibt:
javascriptconsole.log(user.show());
Der Versuch, von außerhalb der Klasse auf die Eigenschaft zuzugreifen, führt zu keinem Fehler:
javascriptconsole.log(user._name); // kein Fehler
Machen Sie im folgenden Code die Eigenschaften privat:
javascriptclass 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:
javascriptclass Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + '€';
}
}