პრივატული თვისებები OOP-ში JavaScript-ში
ობიექტის თვისებები, რომლების წაკითხვაც და ჩაწერაც შესაძლებელია გარედან, ეწოდება პუბლიკური. ასევე არსებობენ პრივატული თვისებები, რომლებიც იქნება ხელმისაწვდომი მხოლოდ კლასის შიგნით.
პრივატული თვისებების სახელები უნდა
იწყებოდეს # სიმბოლოთი.
გარდა ამისა, ასეთი თვისებები აუცილებლად უნდა
გამოცხადდეს კლასის კოდის დასაწყისში.
მოდით გავაკეთოთ ეს:
class User {
#name;
}
ახლა ჩავწეროთ მონაცემები ჩვენს თვისებაში. ეს შეიძლება გაკეთდეს, მაგალითად, კლასის კონსტრუქტორში:
class User {
#name;
constructor(name) {
this.#name = name;
}
}
ახლა გავაკეთოთ მეთოდი, რომელიც დაგვიბრუნებს ჩვენი თვისების მნიშვნელობას:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
შევქმნათ კლასის ობიექტი, პარამეტრად გადავცეთ მომხმარებლის სახელი:
let user = new User('john');
ჩვენი თვისების პირდაპირ მიწვდომის მცდელობა კლასის გარეთ გამოიწვევს შეცდომას:
console.log(user.#name); // შეცდომა
ჩვენი მეთოდის გამოძახება კი საშუალებას მოგვცემს წავიკითხოთ ეს თვისება:
console.log(user.show()); // გამოიტანს 'john'
Employee კლასში გახადეთ
სამი პრივატული თვისება: სახელი, ხელფასი
და ასაკი.
კონსტრუქტორს პარამეტრად გადაეცით ამ თვისებების მნიშვნელობები.
გახადეთ მეთოდი, რომელიც გამოიტანს მუშაკის მონაცემებს.