Įvedus ES6, JavaScript dabar suteikia galimybę skelbti privatų laukelį klasėse. Tai ypač svarbu duomenų kapsuliavimui ir nepageidaujamo išorinės prieigos užkardymui. Šiame vadove tu išmoksi, kaip efektyviai įgyvendinti ir naudoti privačius laukelius, kad tavo duomenys būtų saugūs.
Pagrindiniai įžvalgos
- Privatūs laukeliai deklaruojami su hash ženklu (#).
- Patekti prie privačių laukelių galima tik viduje klasės.
- JavaScript nesuteikia raktažodžio pagrindu veikiančios matomybės, kaip tai daro kitos programavimo kalbos.
Žingsnis po žingsnio vadovas
Skelbti klasę ir kurti privačius narius
Pirmiausia sukursime klasę ir deklaruosime privatų laukelį. Pradėsime nuo klasės, vadinamos Secret, kuri turi privatų laukelį, pavadintą #secret. Šis laukelis saugo konfidencialią informaciją, kuri neturėtų būti prieinama iš išorės.

Sukurti klasės instanciją ir iškviesti metodą
Kitą, sukursime klasės Secret instanciją ir iškviesti print() metodą, kad gautume privatų laukelio vertę. Tai turėtų atrodyti taip:
Bandymas pasiekti privačius laukelius iš išorės
Dabar bus įdomu, kai bandysi tiesiogiai pasiekti privatų laukelį #secret iš išorės. Pastebėsi, kad tai neveikia. JavaScript kompiliatorius jau praneš apie tai, kai rašysite kodą.
Jei įrašysi mySecret.#secret, gausi klaidos pranešimą Visual Studio Code. Tai rodo, kad privatūs laukeliai iš tikrųjų atlieka savo funkciją: jie nėra prieinami iš klasės išorės.
Patikrinti matomumą su Object Keys
Gerai testavimo metodas yra patikrinti, ar privatūs laukeliai rodomi naudojant Object.keys(). Jei bandysi išvardinti instancijos raktus, turėtum pamatyti, kad #secret nėra išvardintas.
Tai matome, kad privatūs laukeliai nėra išvardinti. Taip pasireiškia duomenų kapsuliavimo privalumas JavaScript.
Skirtumas nuo ankstesnių konvencijų
Anksčiau buvo konvencijų, kurios nurodydavo privačius laukelius naudojant dvigubus pabraukimus. Tačiau ši metodika iš tikrųjų neveikia, kadangi nėra apsaugos nuo prieigos prie privačių savybių. Įvedus privačius laukelius su hash ženklu, dabar turi švarią ir efektyvią metodiką privačių kintamųjų deklaravimui.
Sukurti statinius privačius laukelius
Tu taip pat gali deklaruoti statinius privatus laukelius savo klasėje. Tai veikia panašiai kaip instancijų kintamieji, tačiau reikalauja šiek tiek skirtingo požiūrio pradinio nustatymo.
console.log(Secret.getPrivateStaticField()); // Išvestis: "Aš esu privatus"
Svarbu pažymėti, kad tu naudoji statinį prieigą su klasės pavadinimo sintakse.
Išvada
Naudodamas privačius laukelius JavaScript klasėse, gali užtikrinti, kad svarbūs duomenys būtų apdorojami tik klasės viduje. Tai didelis privalumas duomenų kapsuliavimui ir saugumui tavo duomenų struktūrose. Dabar išmokai, kaip įgyvendinti privačius laukelius, pasiekti juos iš išorės ir efektyviai užtikrinti duomenų kapsuliavimą.
Santrauka – Efektyvus privačių laukelių naudojimas JavaScript klasėse
Šiame vadove tu išmokai procesą, kaip įgyvendinti ir naudoti privačius laukelius JavaScript klasėse. Dabar žinai, kad privačių laukelių deklaracija vyksta su hash ženklu (#) ir nuo išorinės prieigos nėra galimybės.
Dažnai užduodami klausimai
Kas yra privatūs laukeliai JavaScript?Privatūs laukeliai yra klasės savybės, kurios nėra prieinamos iš išorės ir gali būti apdorojamos tik viduje klasės.
Kaip deklaruoti privatų laukelį?Privatus laukelis deklaruojamas, pridedant hash ženklą (#) prie pavadinimo, pavyzdžiui, #manoPrivatusLaukas.
Ar galiu statinius privatus laukelius deklaruoti?Taip, tu taip pat gali statinius privatūs laukelius deklaruoti, naudodamas sintaksę static #laukelioPavadinimas.
Kodėl privatūs laukeliai yra svarbūs?Privatūs laukeliai apsaugo tavo duomenis nuo neleistinos prieigos iš išorės ir skatina kapsuliavimą objektiniame programavime.
Kaip veikia prieiga prie privačių laukelių?Prie privataus laukelio galima prieiti tik klasės viduje. Išorinis skriptas ar kitas kodas negali tiesiogiai prie jų prieiti.