Приватност у старом стилу у ООП-у у 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); // нема грешке
Задание 1
У следећем коду учините атрибуте приватнимa:
javascriptclass Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getName() {
return this.name;
}
getSalary() {
return this.salary;
}
}
Задание 2
У следећем коду учините помоћни метод приватним:
javascriptclass Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + '
;
}
}