Med introduktionen af ES6 tilbyder JavaScript nu muligheden for at deklarere private felter i klasser. Dette er især vigtigt for indkapslingen af data og for at forhindre uønsket adgang udefra. I denne tutorial vil du lære, hvordan du effektivt implementerer og bruger private felter for at holde dine data sikre.
Vigtigste indsigter
- Private felter deklareres med hashtag-tegnet (#).
- Adgang til private felter sker kun inden for klassen.
- JavaScript tilbyder ikke nøgleord-baseret synlighed som andre programmeringssprog.
Trin-for-trin vejledning
Deklarere klasse og oprette private medlemmer
Først opretter vi en klasse og deklarerer et privat felt. Vi begynder med en klasse, der har navnet Secret og indeholder et privat felt kaldet #secret. Dette felt gemmer fortrolige oplysninger, som ikke skal være tilgængelige for udvendige adgang.

Opret instans af klassen og kald metode
Næste trin er at oprette en instans af klassen Secret og kalde metoden print() for at vise værdien af det private felt. Det skulle se sådan ud:
Forsøge adgang udefra til private felter
Nu bliver det interessant, når du forsøger at få adgang direkte til det private felt #secret fra udefra. Du vil opdage, at det ikke virker. JavaScript-kompileren vil allerede advare dig, mens du skriver koden.
Hvis du indtaster mySecret.#secret, får du en fejlinformation i Visual Studio Code. Dette viser, at private felter faktisk opfylder deres formål: De er ikke tilgængelige udefra klassen.
Tjekke synlighed med Object Keys
En god testprocedure er at kontrollere, om det private felt vises, når du bruger Object.keys(). Hvis du forsøger at liste nøglerne for instansen, bør du se, at #secret ikke er medtaget.
Du kan se, at det private felt ikke bliver oplistet. Dette fremhæver fordelene ved datakapsling i JavaScript.
Forskellen til tidligere konventioner
Tidligere var der konventioner, der ved hjælp af dobbelt understregninger henviste til private felter. Denne metode fungerer dog ikke rigtigt, da der ikke er nogen beskyttelse mod adgang til private egenskaber. Med introduktionen af private felter med hashtag-symbolet har du nu en ren og effektiv metode til at deklarere private variabler.
Oprette statiske private felter
Du kan også deklarere statiske private felter i din klasse. Dette fungerer ligesom med instansvariabler, men kræver en let ændret tilgang ved initialisering.
console.log(Secret.getPrivateStaticField()); // Udsagn: "Jeg er privat"
Her er det vigtigt at bemærke, at du gør den statiske adgang ved hjælp af klassenavns-syntaks.
Konklusion
Ved at bruge private felter i JavaScript-klasser kan du sikre, at vigtige data kun behandles internt i klassen. Dette er en stor fordel for indkapslingen og sikkerheden i dine datastrukturer. Du har nu lært, hvordan man implementerer private felter, får adgang til dem udefra og effektivt sikrer datakapsling.
Opsummering – Effektiv anvendelse af private felter i JavaScript-klasser
I denne vejledning har du lært processen for implementering og anvendelse af private felter i JavaScript-klasser. Du ved nu, at deklarationen af private felter sker ved hjælp af hashtag-tegnet (#) og at adgang udefra ikke er mulig.
Ofte stillede spørgsmål
Hvad er private felter i JavaScript?Private felter er egenskaber ved en klasse, der ikke er tilgængelige udefra og kun kan behandles inden for klassen.
Hvordan deklarerer jeg et privat felt?Et privat felt deklareres ved at foran sætte hashtag-tegnet (#) før navnet, f.eks. #mitPrivateFelt.
Kan jeg deklarere private felter statisk?Ja, du kan også deklarere private felter statisk ved at bruge syntaksen static #felt navn.
Hvorfor er private felter vigtige?Private felter beskytter dine data mod uautoriseret adgang udefra og fremmer indkapsling i objektorienteret programmering.
Hvordan fungerer adgangen til private felter?Adgang til private felter kan kun ske inden for klassen. Et eksternt script eller en anden kode kan ikke få direkte adgang til dem.