Manipulation af objekter i klasser i OOP i JavaScript
Klasser kan som parametre til metoder tage imod objekter fra andre klasser og manipulere disse objekter. Lad os se på et eksempel. Lad os sige, at vi har følgende klasse:
javascriptclass User {
#name;
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Lad os sige, at vi besluttede at lave en klasse, som vil manipulere et sæt af objekter med brugere:
javascriptclass UsersCollection {
}
Vi vil gemme objekter med brugere i form af et array i en privat egenskab:
javascriptclass UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
Lad os lave en metode til at tilføje en ny bruger til arrayet:
javascriptclass UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
}
Og nu laver vi en metode, som udskriver alle brugernes navne i konsollen:
javascriptclass UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
show() {
for (let user of this.#users) {
console.log(user.getName());
}
}
}
Lad os se på, hvordan vores klasse fungerer. Lad os først oprette dens objekt:
javascriptlet uc = new UsersCollection;
Nu tilføjer vi flere brugere til vores samling:
javascriptuc.add(new User('john'));
uc.add(new User('eric'));
uc.add(new User('kyle'));
Og nu kalder vi metoden, som udskriver alle brugernes navne i konsollen:
javascriptuc.show();
Lav en klasse EmployeesCollection,
som vil indeholde et array af medarbejdere.
Lav en metode i denne klasse til at tilføje en ny medarbejder.
Lav en metode i denne klasse til at udskrive alle medarbejdere.
Lav en metode i denne klasse til at beregne den samlede løn for alle medarbejdere.
Lav en metode i denne klasse til at beregne den gennemsnitlige løn for alle medarbejdere.