JavaScript-də OOP-də Private Xüsusiyyətlər
Obyektin kənardan oxumaq və yazmaq olunan xüsusiyyətləri public adlanır. Həmçinin private xüsusiyyətlər də var ki, onlar yalnız klasın daxilində əlçatan olacaq.
Private xüsusiyyətlərin adları # simvolu ilə başlamalıdır.
Bundan əlavə, belə xüsusiyyətlər mütləq klas kodunun əvvəlində
elan edilməlidir.
Gəlin bunu edək:
class User {
#name;
}
İndi bizim xüsusiyyətimizə məlumat yazaq. Bu, məsələn, klasın konstruktorunda edilə bilər:
class User {
#name;
constructor(name) {
this.#name = name;
}
}
İndi bizim xüsusiyyətimizin dəyərini qaytaracaq bir metod edək:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Klasın obyektini yaradaq, parametr olaraq istifadəçi adını ötürək:
let user = new User('john');
Birbaşa olaraq klasın xaricində bizim xüsusiyyətimizə müraciət etməyə cəhd xətaya səbəb olacaq:
console.log(user.#name); // xəta
Bizim metodumuzun çağırılması isə bu xüsusiyyəti oxumağa imkan verəcək:
console.log(user.show()); // 'john' çap edəcək
Employee klasında
üç private xüsusiyyət edin: ad, maaş
və yaş.
Bu xüsusiyyətlərin dəyərlərini konstruktora parametr kimi ötürün.
İşçinin məlumatlarını çap edəcək bir metod edin.