Ιδιότητες-προσπελαστές στο ΑΟΠ στο JavaScript

Υπάρχουν δύο τύποι ιδιοτήτων αντικειμένου.

Ο πρώτος τύπος είναι οι ιδιότητες-δεδομένα (data properties). Γνωρίζουμε ήδη πώς να δουλεύουμε με αυτές. Όλες οι ιδιότητες, που χρησιμοποιήσαμε μέχρι αυτή τη στιγμή, ήταν ιδιότητες-δεδομένα.

Δεν έχουμε εξετάσει ακόμη τον δεύτερο τύπο ιδιοτήτων. Αυτές είναι οι ιδιότητες-προσπελαστές (accessor properties). Ουσιαστικά είναι συναρτήσεις, που χρησιμοποιούνται για την ανάθεση και λήψη τιμής, αλλά στον εξωτερικό κώδικα εμφανίζονται ως συνηθισμένες ιδιότητες αντικειμένου.

Οι ιδιότητες-προσπελαστές δημιουργούνται με τις λέξεις-κλειδιά get και set γραμμένες κατά τη δήλωση μεθόδων:

javascriptclass User {
  get name() {
  
  }
  set name(name) {
  
  }
}

Ως αποτέλεσμα αυτής της δήλωσης η κλάση μας θα έχει την ιδιότητα name. Σε αυτή την περίπτωση, κατά την προσπάθεια ανάγνωσης αυτής της ιδιότητας θα καλεστεί η μέθοδος, που δηλώνεται μέσω get:

javascriptlet name = user.name;

Κατά την προσπάθεια εγγραφής θα καλεστεί η μέθοδος, που δηλώνεται μέσω set:

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

Δίνεται η ακόλουθη κλάση:

javascriptclass Employee {
  get name() {
    console.log('get');
  }
  set name(name) {
    console.log('set');
  }
}

Δημιουργήστε ένα αντικείμενο αυτής της κλάσης και δοκιμάστε να γράψετε και να διαβάσετε δεδομένα από την ιδιότητα name.