⊗jsOpIhPtM 37 of 60 menu

Προστατευμένες Μέθοδοι στην Αντικειμενοστραφή Προγραμματισμό σε JavaScript

Οι ιδιωτικές μέθοδοι δεν κληρονομούνται ούτε είναι ορατές από έξω από την κλάση. Μερικές φορές, ωστόσο, χρειαζόμαστε μεθόδους, που κληρονομούνται, αλλά δεν είναι ορατές από έξω από την κλάση. Αυτές οι μέθοδοι ονομάζονται προστατευμένες (protected). Η JavaScript, δυστυχώς, δεν υποστηρίζει τέτοιες μεθόδους.

Γι' αυτό προτείνω να εισαγάγουμε μια συγκεκριμένη σύμβαση, που επιτρέπει τη δημιουργία τέτοιων μεθόδων. Θα αρχίζουμε τα ονόματα αυτών των μεθόδων με υπογράμμιση. Ουσιαστικά χρησιμοποιούμε την παλιά ευρέως αποδεκτή σύμβαση για τις ιδιωτικές μεθόδους. Μόνο που ονομάζουμε αυτές τις μεθόδους προστατευμένες ως ένδειξη ότι κληρονομούνται, αλλά δεν θα τις χρησιμοποιούμε από έξω. Παρεμπιπτόντως, έτσι ακριβώς χρησιμοποιούνται σύμφωνα με την αρχαία σύμβαση.

Λοιπόν, ας γράψουμε μια γονική κλάση με μια προστατευμένη μέθοδο:

class User { setName(name) { this.name = name; } getName() { return this._capeFirst(this.name); } _capeFirst(str) { return str[0].toUpperCase() + str.slice(1); } }

Ας χρησιμοποιήσουμε αυτήν την προστατευμένη μέθοδο στην παιδική κλάση:

class Student extends User { setSurn(surn) { this.surn = surn; } getSurn() { return this._capeFirst(this.surn); } }

Στον ακόλουθο κώδικα, κάντε την βοηθητική μέθοδο προστατευμένη:

class User { setName(name) { if (this._notEmpty(name)) { this.name = name; } } getName() { return this.name; } _notEmpty(str) { return str.length > 0; } } class Employee extends User { setSurn(surn) { if (this._notEmpty(surn)) { this.surn = surn; } } getSurn() { return this.surn; } }
Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη