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:
class 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:
class UsersCollection {
}
Vi vil gemme objekter med brugere i form af et array i en privat egenskab:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
Lad os lave en metode til at tilføje en ny bruger til arrayet:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
}
Og nu laver vi en metode, som udskriver alle brugernes navne i konsollen:
class 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:
let uc = new UsersCollection;
Nu tilføjer vi flere brugere til vores samling:
uc.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:
uc.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.