Ιδιωτικές Ιδιότητες στην ΑΟΠ στο JavaScript
Οι ιδιότητες ενός αντικειμένου που μπορούν να διαβαστούν και να γραφτούν από έξω, ονομάζονται δημόσιες (public). Υπάρχουν επίσης και ιδιωτικές (private) ιδιότητες, που θα είναι προσβάσιμες μόνο μέσα στην κλάση.
Τα ονόματα των ιδιωτικών ιδιοτήτων πρέπει
να ξεκινούν με το σύμβολο #.
Εκτός αυτού, τέτοιες ιδιότητες πρέπει υποχρεωτικά να
δηλωθούν στην αρχή του κώδικα της κλάσης.
Ας το κάνουμε αυτό:
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 κάντε
τρεις ιδιωτικές ιδιότητες: όνομα, μισθό
και ηλικία.
Περάστε ως παράμετρο του κατασκευαστή τις τιμές αυτών των ιδιοτήτων.
Κάντε μια μέθοδο, που θα εμφανίζει τα δεδομένα του εργαζομένου.