Private egenskaper i OOP i JavaScript

Objektegenskaper som kan leses og skrives utenfra, kalles offentlige. Det finnes også private egenskaper, som kun vil være tilgjengelige inni klassen.

Navn på private egenskaper må starte med tegnet #. I tillegg må slike egenskaper nødvendigvis deklareres i starten av klassekoden. La oss gjøre dette:

javascriptclass User {
  #name;
}

La oss nå skrive data til vår egenskap. Dette kan gjøres for eksempel i konstruktøren til klassen:

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

La oss lage en metode som vil returnere verdien av vår egenskap:

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

La oss opprette et objekt av klassen, og sende navnet som parameter til brukeren:

javascriptlet user = new User('john');

Et forsøk på å direkte få tilgang til vår egenskap utenfor klassen vil føre til en feil:

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

Og et kall til vår metode vil tillate oss å lese denne egenskapen:

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

I klassen Employee, lag tre private egenskaper: navn, lønn og alder.

Задание 2

Send verdiene for disse egenskapene som en parameter til konstruktøren.

Задание 3

Lag en metode som vil skrive ut dataene til arbeidstakeren.