Private egenskaber i OOP i JavaScript

Objektegenskaber, som kan læses og skrives udefra, kaldes offentlige. Der findes også private egenskaber, som kun vil være tilgængelige internt i klassen.

Navnene på private egenskaber skal starte med symbolet #. Desuden skal sådanne egenskaber nødvendigvis deklareres i starten af klassekoden. Lad os gøre dette:

javascriptclass User {
  #name;
}

Lad os nu skrive data til vores egenskab. Dette kan gøres for eksempel i klassens konstruktor:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
}

Lad os nu lave en metode, som vil returnere værdien af vores egenskab:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
  
  show() {
    return this.#name;
  }
}

Lad os oprette et objekt af klassen, hvor vi sender brugernavnet som parameter:

javascriptlet user = new User('john');

Et forsøg på at tilgå direkte vores egenskab uden for klassen vil føre til en fejl:

javascriptconsole.log(user.#name); // fejl

Og et kald til vores metode vil tillade os at læse denne egenskab:

javascriptconsole.log(user.show()); // udskriver 'john'
Задание 1

I klassen Employee skal du lave tre private egenskaber: navn, løn og alder.

Задание 2

Overfør værdierne for disse egenskaber som en parameter til konstruktøren.

Задание 3

Lav en metode, der vil udskrive medarbejderens data.