Z uvedbo ES6 JavaScript sedaj ponuja možnost za deklaracijo private polj v razredih. To je še posebej pomembno za kapsulacijo podatkov in preprečevanje nezaželenega dostopa od zunaj. V tem priročniku se boste naučili, kako učinkovito implementirati in uporabljati zasebna polja ter ohranjati svoje podatke varne.
Najpomembnejši ugotovitve
- Zasebna polja so deklarirana z določitvijo znaka hash (#).
- Dostop do zasebnih polj je mogoč le znotraj razreda.
- JavaScript ne ponuja vidnosti, ki temelji na ključnih besedah, kot druge programske jezike.
Navodila po korakih
Deklaracija razreda in ustvarjanje zasebnih članov
Najprej ustvarimo razred in deklariramo zasebno polje. Začnemo z razredom, ki se imenuje Secret in vsebuje zasebno polje z imenom #secret. To polje shranjuje zaupne informacije, ki ne smejo biti dostopne od zunaj.

Ustvarjanje instance razreda in klic metode
Naslednje, kar naredimo, je ustvarjanje instance razreda Secret in klic metode print(), da izpišemo vrednost zasebnega polja. To bi moralo izgledati takole:
Poskus dostopa od zunaj do zasebnih polj
Zdaj postane zanimivo, ko poskusiš neposredno dostopati do zasebnega polja #secret od zunaj. Ugotovil/a boš, da to ne deluje. JavaScript prevajalnik te bo opozoril že med pisanjem kode.
Ko vneseš mySecret.#secret, dobiš sporočilo o napaki v Visual Studio Code. To kaže, da zasebna polja dejansko opravljajo svojo nalogo: niso dostopna od zunaj razreda.
Preverjanje vidnosti z Object Keys
Dobro testiranje je preverjanje, ali se zasebno polje prikaže pri uporabi Object.keys(). Ko poskusiš naštevati ključe instance, bi moral/a videti, da #secret ni na seznamu.
Vidite, da zasebno polje ni na seznamu. S tem se kaže prednost kapsulacije podatkov v JavaScriptu.
Razlika v primerjavi s prejšnjimi konvencijami
Prej so bile konvencije, ki so z uporabo dvojnih podčrtajev označevale zasebna polja. Vendar ta metoda v resnici ne deluje, saj ne nudi zaščite proti dostopu do zasebnih lastnosti. Z uvedbo zasebnih polj s simbolom hash imaš zdaj čist in učinkovit način za deklaracijo zasebnih spremenljivk.
Ustvarjanje statičnih zasebnih polj
Prav tako lahko v svojem razredu deklariraš statična zasebna polja. To deluje podobno kot pri instančnih spremenljivkah, vendar zahteva nekoliko drugačen postopek pri inicializaciji.
console.log(Secret.getPrivateStaticField()); // Izhod: "Jaz sem zasebno"
Pomembno je opozoriti, da dostop do statičnih članov izvedeš s sintakso imena razreda.
Zaključek
Z uporabo zasebnih polj v razredih JavaScript lahko zagotoviš, da se pomembni podatki obdelujejo le interno znotraj razreda. To je velika prednost za kapsulacijo in varnost tvojih podatkovnih struktur. Zdaj si se naučil/a, kako implementirati zasebna polja, dostopati do njih od zunaj in učinkovito zagotavljati kapsulacijo podatkov.
Povzetek – Učinkovita uporaba zasebnih polj v razredih JavaScript
V tem priročniku si se naučil/a postopek implementacije in uporabe zasebnih polj v razredih JavaScript. Zdaj veš, da se deklaracija zasebnih polj izvaja z dodelitvijo znaka hash (#) in da dostop od zunaj ni mogoč.
Pogosto zastavljena vprašanja
Kaj so zasebna polja v JavaScriptu?Zasebna polja so lastnosti razreda, ki niso dostopne od zunaj in jih je mogoče obdelovati le znotraj razreda.
Kako deklariram zasebno polje?Zasebno polje se deklarira z predpostavljanjem znaka hash (#) pred imenom, npr. #mojeZasebnoPolje.
Ali lahko zasebna polja deklariram statično?Da, lahko tudi statično deklariraš zasebna polja z uporabo sintakse static #imePolja.
Zakaj so zasebna polja pomembna?Zasebna polja ščitijo tvoje podatke pred nepooblaščenim dostopom od zunaj in spodbujajo kapsulacijo v objektno usmerjenem programiranju.
Kako deluje dostop do zasebnih polj?Do zasebnih polj se lahko dostopa samo znotraj razreda. Zunanji skript ali drug koda ne more neposredno dostopati do njih.