Į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.

Privatus Felder JavaScripte efektyviai naudoti

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.