Confidențialitate în stil vechi în OOP în JavaScript
Declararea proprietăților și metodelor private
prin simbolul # a apărut în JavaScript
cu totul recent. Până atunci trebuia să
folosim o metodă specială și ingenioasă.
Esența acestei metode constă în faptul că se convenționează că numele proprietăților private și al metodelor ar trebui să înceapă cu simbolul de subliniere. În realitate, aceste nume nu vor fi private, dar suntem de acord că nu le vom folosi din afara clasei.
Să încercăm. Să facem o proprietate privată în acest stil:
javascriptclass User {
constructor(name) {
this._name = name;
}
show() {
return this._name;
}
}
Să creăm un obiect al clasei:
javascriptlet user = new User('john', 'smit');
Să apelăm metoda care afișează valoarea proprietății noastre:
javascriptconsole.log(user.show());
Încercarea de a accesa proprietatea din afara clasei nu va duce la o eroare:
javascriptconsole.log(user._name); // nu există eroare
În următorul cod, faceți proprietățile private:
javascriptclass Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getName() {
return this.name;
}
getSalary() {
return this.salary;
}
}
În următorul cod, faceți metoda auxiliară privată:
javascriptclass Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + '
;
}
}