ობიექტების მანიპულირება კლასებში OOP-ში JavaScript-ში
მეთოდების პარამეტრებად კლასებს შეუძლიათ მიიღონ სხვა კლასების ობიექტები და მანიპულირება მოახდინონ ამ ობიექტებზე. მოდით შევხედოთ მაგალითს. დავუშვათ, გვაქვს შემდეგი კლასი:
class User {
#name;
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
დავუშვათ, გადავწყვიტეთ კლასის შექმნა, რომელიც მანიპულირებას მოახდენს მომხმარებლების ობიექტების სიმრავლეზე:
class UsersCollection {
}
მომხმარებლების ობიექტების შენახვა მოხდება მასივის სახით პრივატულ თვისებაში:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
შევქმნათ მეთოდი ახალი მომხმარებლის დასამატებლად მასივში:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
}
ახლა შევქმნათ მეთოდი, რომელიც გამოიტანს კონსოლში ყველა მომხმარებლის სახელს:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
show() {
for (let user of this.#users) {
console.log(user.getName());
}
}
}
მოდით შევხედოთ ჩვენი კლასის მუშაობას. პირველ რიგში, შევქმნათ მისი ობიექტი:
let uc = new UsersCollection;
ახლა დავამატოთ ჩვენს კოლექციაში რამდენიმე მომხმარებელი:
uc.add(new User('john'));
uc.add(new User('eric'));
uc.add(new User('kyle'));
ახლა კი გამოვიძახოთ მეთოდი, რომელიც გამოიტანს კონსოლში ყველა მომხმარებლის სახელს:
uc.show();
შექმენით კლასი EmployeesCollection,
რომელიც შეიცავს თანამშრომლების მასივს.
შექმენით ამ კლასში მეთოდი ახალი თანამშრომლის დასამატებლად.
შექმენით ამ კლასში მეთოდი ყველა თანამშრომლის გამოსატანად.
შექმენით ამ კლასში მეთოდი ყველა თანამშრომლის საერთო ხელფასის გამოსათვლელად.
შექმენით ამ კლასში მეთოდი ყველა თანამშრომლის საშუალო ხელფასის გამოსათვლელად.