Privata egenskaper i OOP i JavaScript

Objektets egenskaper som kan läsas och skrivas utifrån kallas publika. Det finns också privata egenskaper, som endast kommer att vara tillgängliga inuti klassen.

Namn på privata egenskaper ska börja med symbolen #. Dessutom måste sådana egenskaper obligatoriskt deklareras i början av klasskoden. Låt oss göra detta:

javascriptclass User {
  #name;
}

Nu skriver vi data till vår egenskap. Detta kan göras till exempel i klassens konstruktor:

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

Låt oss nu skapa en metod som kommer att returnera värdet på vår egenskap:

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

Låt oss skapa ett objekt av klassen, och skicka med användarens namn som parameter:

javascriptlet user = new User('john');

Ett försök att direkt komma åt vår egenskap utanför klassen kommer att leda till ett fel:

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

Och anropet av vår metod kommer att möjliggöra att läsa denna egenskap:

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

I klassen Employee, skapa tre privata egenskaper: namn, lön och ålder.

Задание 2

Skicka värdena för dessa egenskaper via konstruktorn som parameter.

Задание 3

Skapa en metod som skriver ut anställdas data.