Ar ES6 ieviešanu JavaScript tagad ir iespēja deklarēt privātus laukus klasēs. Tas ir īpaši svarīgi datu kapsulēšanai un nevēlama piekļuves novēršanai no ārpuses. Šajā apmācībā tu uzzināsi, kā efektīvi ieviest un izmantot privātus laukus, lai saglabātu savus datus drošībā.
Galvenie secinājumi
- Privātie lauki tiek deklarēti ar haša zīmi (#).
- Piekļuve privātajiem laukiem ir iespējama tikai klases iekšienē.
- JavaScript nepiedāvā atslēgvārdu balstītu redzamību kā citas programmēšanas valodas.
Pakāpe pa pakāpei instrukcija
Klasas deklarēšana un privātu locekļu izveide
Vispirms mēs izveidosim klasi un deklarēsim privātu lauku. Mēs sākam ar klasi, kurai ir nosaukums Secret un kurā ietilpst privāts lauks ar nosaukumu #secret. Šis lauks glabā sensitīvu informāciju, kas nav pieejama ārējām piekļuvēm.

Klasas instances izveide un metodes izsaukšana
Nākamajā solī mēs izveidojam klases Secret instanci un izsaukam metodi print(), lai izvadītu privātā lauka vērtību. Tam vajadzētu izskatīties šādi:
Piekļuves mēģinājums no ārpuses uz privātajiem laukiem
Tagad kļūst interesanti, kad tu mēģini tieši piekļūt privātajam laukam #secret no ārpuses. Tu konstatēsi, ka tas nedarbojas. JavaScript kompilators tevi jau, rakstot kodu, brīdinās.
Ja tu ieraksti mySecret.#secret, tu saņemsi kļūdas ziņojumu Visual Studio Code. Tas parāda, ka privātie lauki patiešām pilda savu mērķi: tie nav pieejami no klases ārpuses.
Redzamības pārbaude ar Object Keys
Labi pārbaudes paņēmiens ir pārliecināties, vai privātais lauks tiek rādīts, izmantojot Object.keys(). Ja tu mēģini uzskaitīt instancē esošos atslēgvārdus, tev jāredz, ka #secret nav uzskaitīts.
Tu redzi, ka privātais lauks netiek uzskaitīts. Tādējādi atklājas datu kapsulēšanas priekšrocība JavaScript.
Atšķirība no iepriekšējām konvencijām
Agrāk bija konvencijas, kas ar diviem zemsvītras simboliem norādīja uz privātiem laukiem. Tomēr šī metode īsti nedarbojas, jo nav aizsardzības pret piekļuvi privātām īpašībām. Ar privāto laukumu ieviešanu ar haša simbolu tu tagad esi ieguvis tīru un efektīvu metodi privāto mainīgo deklarēšanai.
Statisku privātu laukumu izveide
Tu vari deklarēt arī statiskus privātus laukus savā klasē. Tas darbojas līdzīgi kā instanču mainīgie, taču nepieciešama nedaudz cita pieeja inicializācijai.
console.log(Secret.getPrivateStaticField()); // Izvade: "Es esmu privāts"
Šeit ir svarīgi ņemt vērā, ka tu veiksmīgi piekļūsti, izmantojot klases nosaukuma sintaksi.
Secinājums
Izmantojot privātus laukus JavaScript klasēs, tu vari nodrošināt, ka svarīgi dati tiek apstrādāti tikai iekšēji klasē. Tas ir liels ieguvums datu kapsulēšanai un drošībai tavās datu struktūrās. Tu tagad esi iemācījies, kā ieviest privātus laukus, piekļūt tiem no ārpuses un efektīvi nodrošināt datu kapsulēšanu.
Kopsavilkums – Privātu laukumu efektīva izmantošana JavaScript klasēs
Šajā rokasgrāmatā tu esi apguvis procesu, lai ieviestu un izmantotu privātus laukus JavaScript klasēs. Tu tagad zini, ka privātu laukumu deklarēšana notiek ar haša zīmi (#) un piekļuve no ārpuses nav iespējama.
Biežāk uzdotie jautājumi
Kas ir privāti lauki JavaScript?Privāti lauki ir klases īpašības, kurām nav piekļuves no ārpuses un kuras var apstrādāt tikai klasē.
Kā deklarēt privātu lauku?Privāts lauks tiek deklarēts, priekšā liekot haša zīmi (#) pie nosaukuma, piemēram, #mansPrivātaisLauks.
Vai es varu deklarēt privātus laukus statiski?Jā, tu vari arī statiski deklarēt privātus laukus, izmantojot sintaksi static #laukaNosaukums.
Kāpēc ir svarīgi privāti lauki?Privāti lauki aizsargā tavus datus no nelegālas piekļuves no ārpuses un veicina kapsulēšanu objektorientētajā programmēšanā.
Kā notiek piekļuve privātiem laukiem?Piekļuve privātiem laukiem ir iespējama tikai klases iekšienē. Ārēja skripta vai cita koda var piekļūt tam tieši.