JavaScript да ООП да эски usulda приватность
Хусусий properties ва methodларни
# символы орқали declare qilish
JavaScript да жуда якинда пайдо бўлди.
Ундан олдин махсус қийин usulдан
foydalanishга тўғри келган.
Бу usulнинг mohiyati шундаки, хусусий properties ва methodларнинг nomлари pastki chiziq символыдан boshlanishи kerak деган kelishuvga asoslanган. Asilda бундай nomлар хусусий бўлмайди, лекин биз class ташқарисидан улардан foydalanmaslikka kelishamiz.
Келиб, sinab кўрамиз. Бу usulда хусусий property яратамиз:
class User {
constructor(name) {
this._name = name;
}
show() {
return this._name;
}
}
Classнинг objectини яратамиз:
let user = new User('john', 'smit');
Бизнинг propertyмизнинг қийматини chiqaradigan methodни chaqiramiz:
console.log(user.show());
Class ташқарисидан propertyга murojaat qilishga urinish xatolikka olиб келмайди:
console.log(user._name); // xatolik yoʻq
Quyidagi kodda propertiesларни хусусий qiling:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getName() {
return this.name;
}
getSalary() {
return this.salary;
}
}
Quyidagi kodда yordamchi methodни хусусий qiling:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + '
;
}
}