Οι Getters των Accessors στον OOP στην JavaScript

Ας εξετάσουμε λεπτομερέστερα την εφαρμογή των getters των ιδιοτήτων-accessors. Ας υποθέσουμε ότι έχουμε την ακόλουθη κλάση με μια ιδιωτική ιδιότητα:

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

Ας δημιουργήσουμε σε αυτήν την κλάση μια δημόσια ιδιότητα name, η οποία θα μπορεί να διαβαστεί, αλλά όχι να γραφτεί:

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

Ας ελέγξουμε τη λειτουργία. Δημιουργούμε ένα αντικείμενο της κλάσης μας, περνώντας του ως παράμετρο την τιμή του ονόματος:

javascriptlet user = new User('john');

Τώρα διαβάζουμε το όνομα μέσω της δημόσιας ιδιότητας:

javascriptlet name = user.name;
console.log(name);

Ενώ η προσπάθεια εγγραφής του ονόματος θα οδηγήσει σε σφάλμα, όπως επιθυμούσαμε:

javascriptuser.name = 'eric';
Задание 1

Υλοποιήστε τους getters accessors για τις ιδιότητες της κλάσης Employee.