Махфияти қадима дар ООП дар 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
Дар рамзи зерин хусусиятҳоро махфӣ кунед:
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 + '₽';
}
}