Privātums vecajā stilā OOP JavaScript
Privāto īpašību un metožu deklarēšana
caur simbolu # parādījās JavaScript
visai nesen. Pirms tam nācās
izmantot īpašu viltīgu
paņēmienu.
Šī paņēmiena būtība ir tāda, ka tiek noslēgts vienošanās, ka privāto īpašību un metožu nosaukumiem jāsākas ar apakšsvītras simbolu. Īstenībā šādi nosaukumi nebūs privāti, bet mēs vienojamies, ka neizmantosim tos no ārpuses klases.
Pamēģināsim. Izveidosim privātu īpašību šajā stilā:
javascriptclass User {
constructor(name) {
this._name = name;
}
show() {
return this._name;
}
}
Izveidosim klases objektu:
javascriptlet user = new User('john', 'smit');
Izsauksim metodi, kas izvada vērtību mūsu īpašības:
javascriptconsole.log(user.show());
Mēģinājums piekļūt īpašībai no ārpuses klases neradīs kļūdu:
javascriptconsole.log(user._name); // kļūdas nav
Задание 1
Nākamajā kodā padariet īpašības privātas:
javascriptclass Employee {
constructor(name, salary) {
this._name = name;
this._salary = salary;
}
getName() {
return this._name;
}
getSalary() {
return this._salary;
}
}
Задание 2
Nākamajā kodā padariet palīgmetodi privātu:
javascriptclass Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this._addSign(this.salary);
}
_addSign(num) {
return num + '€';
}
}