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:
javascriptclass User {
#name;
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Oletame, et otsustasime teha klassi, mis manipuleerib kasutajate objektide kogumiga:
javascriptclass UsersCollection {
}
Hoiame kasutajate objekte massiivi kujul privaatse omadusena:
javascriptclass UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
Teeme meetodi uue kasutaja lisamiseks massiivi:
javascriptclass UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
}
Ja nüüd teeme meetodi, mis väljastab konsooli kõikide kasutajate nimed:
javascriptclass 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:
javascriptlet uc = new UsersCollection;
Nüüd lisame meie kogumisse mõne kasutaja:
javascriptuc.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:
javascriptuc.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.