პრივატული თვისებები OOP-ში JavaScript-ში

ობიექტის თვისებები, რომლების წაკითხვაც და ჩაწერაც შესაძლებელია გარედან, ეწოდება პუბლიკური. ასევე არსებობენ პრივატული თვისებები, რომლებიც იქნება ხელმისაწვდომი მხოლოდ კლასის შიგნით.

პრივატული თვისებების სახელები უნდა იწყებოდეს # სიმბოლოთი. გარდა ამისა, ასეთი თვისებები აუცილებლად უნდა გამოცხადდეს კლასის კოდის დასაწყისში. მოდით გავაკეთოთ ეს:

javascriptclass User {
  #name;
}

ახლა ჩავწეროთ მონაცემები ჩვენს თვისებაში. ეს შეიძლება გაკეთდეს, მაგალითად, კლასის კონსტრუქტორში:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
}

ახლა გავაკეთოთ მეთოდი, რომელიც დაგვიბრუნებს ჩვენი თვისების მნიშვნელობას:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
  
  show() {
    return this.#name;
  }
}

შევქმნათ კლასის ობიექტი, პარამეტრად გადავცეთ მომხმარებლის სახელი:

javascriptlet user = new User('john');

ჩვენი თვისების პირდაპირ მიწვდომის მცდელობა კლასის გარეთ გამოიწვევს შეცდომას:

javascriptconsole.log(user.#name); // შეცდომა

ჩვენი მეთოდის გამოძახება კი საშუალებას მოგვცემს წავიკითხოთ ეს თვისება:

javascriptconsole.log(user.show()); // გამოიტანს 'john'
Задание 1

Employee კლასში გახადეთ სამი პრივატული თვისება: სახელი, ხელფასი და ასაკი.

Задание 2

კონსტრუქტორს პარამეტრად გადაეცით ამ თვისებების მნიშვნელობები.

Задание 3

გახადეთ მეთოდი, რომელიც გამოიტანს მუშაკის მონაცემებს.