Med införandet av ES6 erbjuder JavaScript nu möjligheten att deklarera privata fält i klasser. Detta är särskilt viktigt för kapsling av data och för att förhindra oönskad åtkomst utifrån. I denna handledning kommer du att lära dig hur du implementerar och använder privata fält effektivt för att hålla dina data säkra.
Viktigaste insikter
- Privata fält deklareras med hash-tecknet (#).
- Åtkomst till privata fält sker endast inom klassen.
- JavaScript erbjuder ingen nyckelordsbaserad synlighet som andra programmeringsspråk.
Steg-för-steg-guide
Deklarera klass och skapa privata medlemmar
Först skapar vi en klass och deklarerar ett privat fält. Vi börjar med en klass som heter Secret och har ett privat fält med namnet #secret. Detta fält lagrar konfidentiell information som inte ska vara tillgänglig för externa åtkomster.

Skapa instans av klassen och anropa metod
Nästa steg är att skapa en instans av klassen Secret och anropa metoden print() för att skriva ut värdet av det privata fältet. Det bör se ut så här:
Försök att få åtkomst till privata fält utifrån
Nu blir det intressant när du försöker få direkt access till det privata fältet #secret utifrån. Du kommer att märka att det inte fungerar. JavaScript-kompilatorn kommer att varna dig redan när du skriver koden.
När du skriver mySecret.#secret får du ett felmeddelande i Visual Studio Code. Detta visar att privata fält verkligen uppfyller sitt syfte: De är inte åtkomliga utanför klassen.
Kontrollera synlighet med Object Keys
En bra testmetod är att kontrollera om det privata fältet visas vid användning av Object.keys(). När du försöker lista nycklarna för instansen bör du se att #secret inte finns med.
Du ser att det privata fältet inte listas. Detta demonstrerar fördelarna med datakapsling i JavaScript.
Skillnad från tidigare konventioner
Tidigare fanns det konventioner som använde dubbla understreck för att indikera privata fält. Denna metod fungerar emellertid inte riktigt, eftersom det inte finns något skydd mot åtkomst till privata egenskaper. Med införandet av privata fält med hash-symbolen har du nu en ren och effektiv metod för att deklarera privata variabler.
Skapa statiska privata fält
Du kan också deklarera statiska privata fält i din klass. Detta fungerar liknande som instansvariabler, men kräver en något annan metod vid initialisering.
console.log(Secret.getPrivateStaticField()); // Utmatning: "Jag är privat"
Det är viktigt att notera att du gör den statiska åtkomsten med klassnamns-syntax.
Slutsats
Med användning av privata fält i JavaScript-klasser kan du säkerställa att viktiga data endast bearbetas internt inom klassen. Detta är en stor fördel för kapsling och säkerhet för dina datastrukturer. Du har nu lärt dig hur man implementerar privata fält, får åtkomst till dem utifrån och effektivt säkerställer datakapsling.
Sammanfattning - Använd privata fält i JavaScript-klasser effektivt
I denna guide har du lärt dig processen för att implementera och använda privata fält i JavaScript-klasser. Du vet nu att deklarationen av privata fält görs med hash-tecknet (#) och att åtkomst utifrån inte är möjlig.
Vanliga frågor
Vad är privata fält i JavaScript?Privata fält är egenskaper hos en klass som inte är åtkomliga utifrån och endast kan bearbetas inom klassen.
Hur deklarerar jag ett privat fält?Ett privat fält deklareras genom att föra in hash-tecknet (#) före namnet, t.ex. #mittPrivataFält.
Kan jag deklarera privata fält statiskt?Ja, du kan också deklarera privata fält statiskt genom att använda syntaxen static #fältNamn.
Varför är privata fält viktiga?Privata fält skyddar dina data mot obehörig åtkomst utifrån och främjar kapsling i objektorienterad programmering.
Hur fungerar åtkomst till privata fält?Åtkomst till privata fält kan endast ske inom klassen. Ett extern skript eller annan kod kan inte direkt komma åt dem.