Propiedades privadas en POO en JavaScript

Las propiedades del objeto que se pueden leer y escribir desde fuera se denominan públicas. También existen propiedades privadas, que solo estarán disponibles dentro de la clase.

Los nombres de las propiedades privadas deben comenzar con el símbolo #. Además, tales propiedades deben declararse al comienzo del código de la clase. Hagamos esto:

javascriptclass User {
  #name;
}

Ahora escribamos datos en nuestra propiedad. Esto se puede hacer, por ejemplo, en el constructor de la clase:

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

Ahora creemos un método que devuelva el valor de nuestra propiedad:

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

Creemos un objeto de la clase, pasando como parámetro el nombre del usuario:

javascriptlet user = new User('john');

El intento de acceder directamente a nuestra propiedad fuera de la clase provocará un error:

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

Y la llamada a nuestro método permitirá leer esta propiedad:

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

En la clase Employee, haga tres propiedades privadas: nombre, salario y edad.

Задание 2

Pase los valores de estas propiedades como parámetro al constructor.

Задание 3

Cree un método que muestre los datos del empleado.