Objektide manipuleerimine klassides OOP-s JavaScriptis
Klassid saavad meetodite parameetritena võtta vastu teiste klasside objekte ja neid objekte manipuleerida. Vaatame näidet. Olgu meil järgmine klass:
class User {
#name;
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Oletame, et otsustasime teha klassi, mis manipuleerib kasutajate objektide kogumiga:
class UsersCollection {
}
Hoiame kasutajate objekte massiivi kujul privaatse omadusena:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
Teeme meetodi uue kasutaja lisamiseks massiivi:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
}
Ja nüüd teeme meetodi, mis väljastab konsooli kõikide kasutajate nimed:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
show() {
for (let user of this.#users) {
console.log(user.getName());
}
}
}
Vaatame meie klassi töötamist. Kõigepealt loome selle objekti:
let uc = new UsersCollection;
Nüüd lisame meie kogumisse mõne kasutaja:
uc.add(new User('john'));
uc.add(new User('eric'));
uc.add(new User('kyle'));
Ja nüüd kutsume välja meetodi, mis väljastab konsooli kõikide kasutajate nimed:
uc.show();
Tehke klass EmployeesCollection,
mis sisaldab töötajate massiivi.
Tehke selles klassis meetod uue töötaja lisamiseks.
Tehke selles klassis meetod kõikide töötajate väljastamiseks.
Tehke selles klassis meetod kõikide töötajate kogupalga arvutamiseks.
Tehke selles klassis meetod kõikide töötajate keskmise palga arvutamiseks.