Приватност во стар стил во ООП во JavaScript
Декларирање на приватни својства и методи
преку симболот # се појави во JavaScript
совсем неодамна. Пред тоа, мораше да се
користи специјален трик.
Суштината на овој трик е во тоа што се склучува договор дека имињата на приватните својства и методи треба да започнуваат со симбол за подвлекување. Реално, ваквите имиња нема да бидат приватни, но ние се договоруваме дека нема да ги користиме надвор од класата.
Ајде да пробаме. Ајде да направиме приватно својство во ваков стил:
javascriptclass User {
constructor(name) {
this._name = name;
}
show() {
return this._name;
}
}
Ајде да креираме објект од класата:
javascriptlet user = new User('john', 'smit');
Ајде да го повикаме методот што ја прикажува вредноста на нашето својство:
javascriptconsole.log(user.show());
Обидот за пристап до својството однадвор на класата нема да доведе до грешка:
javascriptconsole.log(user._name); // нема грешка
Во следниот код, направете ги својствата приватни:
javascriptclass Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getName() {
return this.name;
}
getSalary() {
return this.salary;
}
}
Во следниот код, направете го помошниот метод приватни:
javascriptclass Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + '
;
}
}