Прыватнасць у старым стылі ў ААП у 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 + '
;
}
}