Manipulación de objetos en clases en POO en JavaScript
Los métodos pueden aceptar objetos de otras clases como parámetros y manipular estos objetos. Veamos un ejemplo. Supongamos que tenemos la siguiente clase:
class User {
#name;
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Supongamos que decidimos crear una clase que manipulará un conjunto de objetos de usuarios:
class UsersCollection {
}
Almacenaremos los objetos de usuarios en forma de array en una propiedad privada:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
Creemos un método para agregar un nuevo usuario al array:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
}
Y ahora creemos un método que muestre en la consola los nombres de todos los usuarios:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
show() {
for (let user of this.#users) {
console.log(user.getName());
}
}
}
Veamos cómo funciona nuestra clase. Primero creemos su objeto:
let uc = new UsersCollection;
Ahora agreguemos varios usuarios a nuestra colección:
uc.add(new User('john'));
uc.add(new User('eric'));
uc.add(new User('kyle'));
Y ahora llamemos al método que mostrará en la consola los nombres de todos los usuarios:
uc.show();
Crea la clase EmployeesCollection,
que contendrá un array de empleados.
Crea en esta clase un método para agregar un nuevo empleado.
Crea en esta clase un método para mostrar todos los empleados.
Crea en esta clase un método para calcular el salario total de todos los empleados.
Crea en esta clase un método para calcular el salario promedio de todos los empleados.