Klassefelter, private #‑felter og statiske medlemmer
Opprett klasser med offentlige felter, skjul data med private #‑felter og legg til statiske egenskaper/metoder.
Klassefelter, private #‑felter og statiske medlemmer er en gratis leksjon i JavaScript Academy på CoddyKit. Dette er leksjon 1 av 3. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i JavaScript Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i JavaScript Academy inneholder totalt 3 leksjoner.
Hvorfor klasser?
Mål: Bygge små og tydelige klasser.
- Offentlige felter og metoder
- #private-felter for skjult tilstand
- static-egenskaper/-metoder for hjelpere på klassenivå
- Hold eksemplene små og enkle å lese

Offentlige felter og konstruktør
Opprett en klasse med et offentlig felt og små metoder; hold logikken enkel for nybegynnere.
// Public fields and a simple method
class Counter {
// public field with default
value = 0;
constructor(start) {
// use a default if start is not provided
this.value = Number.isFinite(start) ? start : 0;
}
inc() {
this.value = this.value + 1;
}
}
const c1 = new Counter(2);
c1.inc();
console.log("value:", c1.value); // 3

Private # felter
#private-felter håndheves av språket og kan bare brukes inne i klassekroppen. Eksponer lesemetoder ved behov.
// Private # fields hide internal state
class SafeCounter {
// private field (only inside the class)
#value = 0;
constructor(start) {
this.#value = Number.isFinite(start) ? start : 0;
}
inc() { this.#value = this.#value + 1; }
getValue() { return this.#value; } // expose via method
}
const sc = new SafeCounter(5);
sc.inc();
console.log("safe value:", sc.getValue());
// External access fails (uncommenting the next line would throw):
// console.log(sc.#value);

Gettere for trygg lesing
En getter kan returnere en avledet eller validert verdi samtidig som feltet holdes privat.
// Getters provide read-only views; simple guard logic
class User {
#name = "Anonymous";
constructor(name) {
if (typeof name === "string" && name.trim().length > 0) {
this.#name = name.trim();
}
}
get name() {
return this.#name;
}
}
const u = new User(" Ayla ");
console.log("name:", u.name);

Statiske medlemmer
static-medlemmer kalles på klassen (for eksempel MathHelp.circleArea()), ikke på instanser.
// Static = belongs to the class, not to instances
class MathHelp {
static PI = 3.14159;
static circleArea(r) {
if (!(typeof r === "number" && r >= 0)) return 0;
return MathHelp.PI * r * r;
}
}
console.log("PI:", MathHelp.PI);
console.log("area r=2:", MathHelp.circleArea(2));
// Instances do not have the static members:
const mh = new MathHelp();
console.log("instance has PI?", "PI" in mh); // false

Gode vaner for nybegynnere
Tips:
- Foretrekk små klasser med få, tydelige metoder.
- Bruk #private for ekte privathet; understreker er bare en navnekonvensjon.
- Plasser konstanter og verktøy på static-medlemmer.
- Eksponer et minimum av lesemetoder (gettere) ved behov for tilgang utenfra.

Quiz om grunnleggende private felter
Rask sjekk: #private-felter.

Oppsummering
Oppsummering: Bruk offentlige felter for enkel tilstand, #private for å skjule interne detaljer og static for hjelpere på klassenivå. Hold hver klasse liten og enkel å lese.

Lær deg JavaScript med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 59
- Leksjoner
- 200
Ofte stilte spørsmål
Er leksjonen «Klassefelter, private #‑felter og statiske medlemmer» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien JavaScript Academy, inkludert «Klassefelter, private #‑felter og statiske medlemmer», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i JavaScript Academy inneholder totalt 3 leksjoner.
Hva lærer jeg i «Klassefelter, private #‑felter og statiske medlemmer»?
Opprett klasser med offentlige felter, skjul data med private #‑felter og legg til statiske egenskaper/metoder. Du øver på JavaScript Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med JavaScript Academy?
Ingen tidligere erfaring er nødvendig. JavaScript Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 3.
Hvor lang tid tar leksjonen «Klassefelter, private #‑felter og statiske medlemmer»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne JavaScript Academy-leksjonen?
Ja. Alle JavaScript Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Klassefelter, private #‑felter og statiske medlemmer
- Arv, super og når komposisjon bør foretrekkes
- Mixins (smakebit) — enkel gjenbruk uten dype hierarkier