Med introduksjonen av ES6 tilbyr JavaScript nå muligheten til å deklarere private felt i klasser. Dette er spesielt viktig for innkapsling av data og for å forhindre uønsket tilgang fra utsiden. I denne veiledningen vil du lære hvordan du implementerer og bruker private felt effektivt for å holde dataene dine sikre.

Viktigste funn

  • Private felt deklareres med hashtag-tegnet (#).
  • Tilgang til private felt skjer kun innen klassen.
  • JavaScript tilbyr ingen nøkkelord-basert synlighet som andre programmeringsspråk.

Trinn-for-trinn-veiledning

Deklarere klasse og opprette private medlemmer

Først oppretter vi en klasse og deklarerer et privat felt. Vi begynner med en klasse som heter Secret og inneholder et privat felt kalt #secret. Dette feltet lagrer konfidensiell informasjon som ikke skal være tilgjengelig for ekstern tilgang.

Effektiv bruke private felt i JavaScript

Opprette instans av klassen og kalle metoden

Deretter oppretter vi en instans av klassen Secret og kaller metoden print() for å skrive ut verdien av det private feltet. Dette bør se slik ut:

Prøve tilgang fra utsiden på private felt

Nå blir det interessant når du prøver å få direkte tilgang til det private feltet #secret fra utsiden. Du vil oppdage at dette ikke fungerer. JavaScript-kompilatoren vil allerede advare deg mens du skriver koden.

Dersom du skriver mySecret.#secret, får du en feilmelding i Visual Studio Code. Dette viser at private felt faktisk oppfyller sin hensikt: De er ikke tilgjengelige fra utsiden av klassen.

Kontrollere synligheten med Object Keys

En god testmetode er å sjekke om det private feltet vises når du bruker Object.keys(). Når du prøver å liste opp nøklene til instansen, bør du se at #secret ikke er oppført.

Du ser at det private feltet ikke er oppført. Dermed avslører dette fordelen med datainnkapsling i JavaScript.

Forskjell fra tidligere konvensjoner

Tidligere fantes det konvensjoner som indikerte private felt ved hjelp av doble understreker. Denne metoden fungerer imidlertid ikke virkelig, da det ikke er beskyttelse mot tilgang til private egenskaper. Med introduksjonen av private felt med hashtag-symbolet har du nå en ren og effektiv metode for å deklarere private variabler.

Opprette statiske private felt

Du kan også deklarere statiske private felt i klassen din. Dette fungerer på samme måte som instansvariabler, men krever en litt annen tilnærming ved initialisering.

console.log(Secret.getPrivateStaticField()); // Utskrift: "Jeg er privat"

Her er det viktig å merke seg at du gjør den statiske tilgangen med klassenavn-syntaksen.

Konklusjon

Ved å bruke private felt i JavaScript-klasser kan du sikre at viktig informasjon kun behandles internt innen klassen. Dette er en stor fordel for innkapslingen og sikkerheten til datastrukturene dine. Du har nå lært hvordan du implementerer private felt, får tilgang til dem fra utsiden og effektivt sikrer datainnkapsling.

Sammendrag – Bruke private felt i JavaScript-klasser effektivt

I denne veiledningen har du lært prosessen for implementering og bruk av private felt i JavaScript-klasser. Du vet nå at deklarasjonen av private felt skjer med hashtag-tegnet (#) og at tilgang fra utsiden ikke er mulig.

Ofte stilte spørsmål

Hva er private felt i JavaScript?Private felt er egenskaper til en klasse som ikke er tilgjengelige fra utsiden og som kun kan behandles innen klassen.

Hvordan deklarerer jeg et privat felt?Et privat felt deklareres ved å sette hashtag-tegnet (#) foran navnet, for eksempel #mittPrivateFelt.

Kan jeg deklarere private felt statisk?Ja, du kan også deklarere private felt statisk ved å bruke syntaksen static #feltnavn.

Hvorfor er private felt viktige?Private felt beskytter dataene dine mot uautorisert tilgang fra utsiden og fremmer innkapsling i objektorientert programmering.

Hvordan fungerer tilgangen til private felt?Tilgang til private felt er kun mulig innen klassen. Et eksternt skript eller annen kode kan ikke få direkte tilgang.