Privatumas senuoju stiliumi OOP JavaScripte
Privačių savybių ir metodų deklaravimas
per simbolį # atsirado JavaScripte
visai neseniai. Prieš tai reikėjo
naudytis specialiu gudriu
metodu.
Šio metodo esmė ta, kad sudaroma sutartis, kad privačių savybių ir metodų pavadinimai turėtų prasidėti pabraukimo simboliu. Realiai tokie pavadinimai nebus privatūs, bet mes susitariame, kad nenaudosime jų iš už klasės ribų.
Pabandykime. Sukurkime privačią savybę tokiu stiliumi:
javascriptclass User {
constructor(name) {
this._name = name;
}
show() {
return this._name;
}
}
Sukurkime klasės objektą:
javascriptlet user = new User('john', 'smit');
Iškvieskime metodą, rodantį reikšmę mūsų savybės:
javascriptconsole.log(user.show());
Bandymas kreiptis į savybę iš išorės klasės nesukels klaidos:
javascriptconsole.log(user._name); // klaidos nėra
Задание 1
Toliau pateiktame kode padarykite savybes privačiomis:
javascriptclass Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getName() {
return this.name;
}
getSalary() {
return this.salary;
}
}
Задание 2
Toliau pateiktame kode padarykite pagalbinį metodą privačiu:
javascriptclass Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + '€';
}
}