Приватност у старом стилу у ООП-у у 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); // нема грешке
У следећем коду учините атрибуте приватнимa:
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 + '
;
}
}