JavaScript Academy · leksjon

Klassefelter, private #‑felter og statiske medlemmer

Opprett klasser med offentlige felter, skjul data med private #‑felter og legg til statiske egenskaper/metoder.

Leksjon 1 av 38 trinn

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
Klassefelter, private #‑felter og statiske medlemmer — illustrasjon 1

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
Klassefelter, private #‑felter og statiske medlemmer — illustrasjon 2

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);
Klassefelter, private #‑felter og statiske medlemmer — illustrasjon 3

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);
Klassefelter, private #‑felter og statiske medlemmer — illustrasjon 4

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
Klassefelter, private #‑felter og statiske medlemmer — illustrasjon 5

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.
Klassefelter, private #‑felter og statiske medlemmer — illustrasjon 6

Quiz om grunnleggende private felter

Rask sjekk: #private-felter.

Klassefelter, private #‑felter og statiske medlemmer — illustrasjon 7

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.

Klassefelter, private #‑felter og statiske medlemmer — illustrasjon 8
Gratis å komme i gang

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

  1. Klassefelter, private #‑felter og statiske medlemmer
  2. Arv, super og når komposisjon bør foretrekkes
  3. Mixins (smakebit) — enkel gjenbruk uten dype hierarkier
← Tilbake til JavaScript Academy