Приватные свойства в ООП в JavaScript

Свойства объекта, которые можно прочитывать и записывать извне, называются публичными. Существуют также приватные свойства, которые будут доступны только внутри класса.

Имена приватных свойств нужно начинать с символа #. Кроме того, такие свойства обязательно нужно объявить в начале кода класса. Давайте сделаем это:

javascriptclass User {
  #name;
}

Теперь запишем данные в наше свойство. Это можно сделать, например, в конструкторе класса:

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

Сделаем теперь метод, который будет возвращать значение нашего свойства:

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

Создадим объект класса, передав параметром имя юзера:

javascriptlet user = new User('john');

Попытка обратиться напрямую к нашему свойству вне класса приведет к ошибке:

javascriptconsole.log(user.#name); // ошибка

А вызов нашего метода позволит прочитать это свойство:

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

В классе Employee сделайте три приватных свойства: имя, зарплату и возраст.

Задание 2

Передайте параметром конструктора значения этих свойств.

Задание 3

Сделайте метод, который выведет данные работника.