Приватност в стария стил в ООП в JavaScript
Декларирането на частни свойства и методи
чрез символа # се появи в JavaScript
напоследък. Преди това трябваше да се
използва специален хитри
метод.
Същността на този метод е, че се сключва споразумение, че имената на частните свойства и методи трябва да започват със символа долна черта. Реално такива имена няма да са частни, но ние се споразумяваме, че няма да ги използваме извън класа.
Нека опитаме. Нека направим частно свойство в такъв стил:
class User {
constructor(name) {
this._name = name;
}
show() {
return this._name;
}
}
Нека създадем обект от класа:
let user = new User('john', 'smit');
Нека извикаме метода, който извежда стойността на нашето свойство:
console.log(user.show());
Опитът за достъп до свойството отвън класа няма да доведе до грешка:
console.log(user._name); // няма грешка
В следния код направете свойствата частни:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getName() {
return this.name;
}
getSalary() {
return this.salary;
}
}
В следния код направете спомагателния метод частен:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + 'лв.';
}
}