Ubadilishaji wa Vitu katika Madarasa katika OOP katika JavaScript
Madarasa yanaweza kukubali vitu vya madarasa mengine kama parameta za mbinu na kuyabadilisha vitu hivyo. Tuangalie kwa mfano. Tuchukulie tuna darasa lifuatalo:
class User {
#name;
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Tuchukulie tumeamua kutengeneza darasa, ambalo litabadilisha msururu wa vitu vya watumiaji:
class UsersCollection {
}
Tutaweka vitu vya watumiaji katika mfumo wa safu katika siri maalum:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
Tutengeneze mbinu ya kuongeza mtumiaji mpya kwenye safu:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
}
Sasa tutengeneze mbinu ambayo itaonyesha majina ya watumiaji wote kwenye koni:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
show() {
for (let user of this.#users) {
console.log(user.getName());
}
}
}
Tuangalie utendaji wa darasa letu. Kwanza tuunde kitu chake:
let uc = new UsersCollection;
Sasa tuongeze kwenye mkusanyiko wetu watumiaji kadhaa:
uc.add(new User('john'));
uc.add(new User('eric'));
uc.add(new User('kyle'));
Sasa tuitanye mbinu ambayo itaonyesha kwenye koni majina ya watumiaji wote:
uc.show();
Tengeneza darasa EmployeesCollection,
ambalo litakuwa na safu ya wafanyikazi.
Tengeneza katika darasa hili mbinu ya kuongeza mfanyikazi mpya.
Tengeneza katika darasa hili mbinu ya kuonyesha wafanyikazi wote.
Tengeneza katika darasa hili mbinu ya kukokotoa jumla ya mishahara ya wafanyikazi wote.
Tengeneza katika darasa hili mbinu ya kukokotoa mshahara wa wastati wa wafanyikazi wote.