Ιδιωτικότητα με τον παλιό τρόπο στην ΑΑΠ στο JavaScript
Ο δήλωση ιδιωτικών ιδιοτήτων και μεθόδων
μέσω του συμβόλου # εμφανίστηκε στο JavaScript
πολύ πρόσφατα. Πριν από αυτό, έπρεπε
να χρησιμοποιήσουμε μια ειδική πονηρή
τεχνική.
Η ουσία αυτής της τεχνικής είναι ότι γίνεται μια συμφωνία ότι τα ονόματα των ιδιωτικών ιδιοτήτων και μεθόδων πρέπει να ξεκινούν με το σύμβολο της κάτω παύλας. Στην πραγματικότητα, τέτοια ονόματα δεν θα είναι ιδιωτικά, αλλά συμφωνούμε ότι δεν θα τα χρησιμοποιούμε από έξω από την κλάση.
Ας δοκιμάσουμε. Ας φτιάξουμε μια ιδιωτική ιδιότητα με αυτό το στυλ:
javascriptclass User {
constructor(name) {
this._name = name;
}
show() {
return this._name;
}
}
Ας δημιουργήσουμε ένα αντικείμενο της κλάσης:
javascriptlet user = new User('john', 'smit');
Ας καλέσουμε τη μέθοδο, που εμφανίζει την τιμή της ιδιότητάς μας:
javascriptconsole.log(user.show());
Η προσπάθεια πρόσβασης στην ιδιότητα από έξω της κλάσης δεν θα προκαλέσει σφάλμα:
javascriptconsole.log(user._name); // no error
Στον ακόλουθο κώδικα, κάντε τις ιδιότητες ιδιωτικές:
javascriptclass Employee {
constructor(name, salary) {
this._name = name;
this._salary = salary;
}
getName() {
return this._name;
}
getSalary() {
return this._salary;
}
}
Στον ακόλουθο κώδικα, κάντε τη βοηθητική μέθοδο ιδιωτική:
javascriptclass Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this._addSign(this.salary);
}
_addSign(num) {
return num + '€';
}
}