Приватност во стар стил во ООП во 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 + '
;
}
}