Para asignar los métodos y atributos privados en Clases (ahora en ES21) seran con un #
El propio JavaScript aplica la encapsulación de privacidad de estas características de clase.
class ClassWithPrivateField {
#privateField;
}
Ahora vamos a ver un Ejemplo
Metodos Privados
- Vamos a crear una clase llamada
People
y vamos a tener varios metodos.
class People {
showName() {
console.log("My name is David")
}
showAge() {
console.log("David is 21")
}
}
Para acceder a los metodos dentro de las clases, primero necesitamos instanciar la clase.
class People {
showName() {
console.log("My name is David")
}
showAge() {
console.log("David is 21")
}
}
const people = new People()
people.showName()
people.showAge()
Podemos ver My name is David
y David is 21
en la consola.
Si queremos hacer showAge()
, un método privado dentro de la clase People, por lo que fuera del alcance de la clase no es accesible.
Simplemente agregamos #
a showAge()
algo asi #showAge()
class People {
showName() {
console.log("My name is David")
}
#showAge() {
console.log("David is 21")
}
}
const people = new People()
people.showName()
people.showAge()
Podemos ver el resultado en nuestra consola. Un error es decir people.showAge
que no es una función. Esto se debe a #showAge()
que ahora es un método privado dentro de la clase People
y solo se puede acceder a través de un método público dentro de la clase People
.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.