Ιδιότητες-προσπελαστές στο ΑΟΠ στο JavaScript
Υπάρχουν δύο τύποι ιδιοτήτων αντικειμένου.
Ο πρώτος τύπος είναι οι ιδιότητες-δεδομένα (data properties). Γνωρίζουμε ήδη πώς να δουλεύουμε με αυτές. Όλες οι ιδιότητες, που χρησιμοποιήσαμε μέχρι αυτή τη στιγμή, ήταν ιδιότητες-δεδομένα.
Δεν έχουμε εξετάσει ακόμη τον δεύτερο τύπο ιδιοτήτων. Αυτές είναι οι ιδιότητες-προσπελαστές (accessor properties). Ουσιαστικά είναι συναρτήσεις, που χρησιμοποιούνται για την ανάθεση και λήψη τιμής, αλλά στον εξωτερικό κώδικα εμφανίζονται ως συνηθισμένες ιδιότητες αντικειμένου.
Οι ιδιότητες-προσπελαστές δημιουργούνται με τις
λέξεις-κλειδιά get και set γραμμένες
κατά τη δήλωση μεθόδων:
class User {
get name() {
}
set name(name) {
}
}
Ως αποτέλεσμα αυτής της δήλωσης
η κλάση μας θα έχει την ιδιότητα
name. Σε αυτή την περίπτωση, κατά την προσπάθεια ανάγνωσης
αυτής της ιδιότητας θα καλεστεί η μέθοδος,
που δηλώνεται μέσω get:
let name = user.name;
Κατά την προσπάθεια εγγραφής θα καλεστεί η μέθοδος,
που δηλώνεται μέσω set:
user.name = 'john';
Δίνεται η ακόλουθη κλάση:
class Employee {
get name() {
console.log('get');
}
set name(name) {
console.log('set');
}
}
Δημιουργήστε ένα αντικείμενο αυτής της κλάσης
και δοκιμάστε να γράψετε και να διαβάσετε
δεδομένα από την ιδιότητα name.