ნetters-ის და getters-ის უპირატესობები OOP-ში JavaScript-ში
წინა გაკვეთილზე ჩვენ თითოეული თვისებისთვის გავაკეთეთ ნetter და getter. შეიძლება გაჩნდეს კითხვა, რათა არის საჭირო ასეთი სირთულეები, რადგან ფაქტობრივად იგივე ეფექტის მიღწევა შესაძლებელია, თუ თვისებები გამოვაცხადებთ საჯაროდ, და არა პრივატულად.
საქმე ისაა, რომ ნetters-ს და getters-ს აქვთ უპირატესობა: თვისებაზე მიმართვამდე შესაძლებელია შემოწმებების ჩატარება. მაგალითად, ჩვენს შემთხვევაში, სახელისა და გვარის ჩაწერისას შეგვიძლია შევამოწმოთ, რომ ახალი მნიშვნელობა არ არის ცარიელი სტრიქონი:
class User {
#name;
#surn;
setName(name) {
if (name.length > 0) {
this.#name = name;
} else {
throw new Error('name is incorrect');
}
}
setSurn(surn) {
if (surn.length > 0) {
this.#surn = surn;
} else {
throw new Error('surn is incorrect');
}
}
getName() {
return this.#name;
}
getSurn() {
return this.#surn;
}
}
მოდით შევამოწმოთ, როგორ მუშაობს ეს. პირველ რიგში, შევქმნათ კლასის ობიექტი:
let user = new User;
ახლა ვცადოთ კორექტული მნიშვნელობის ჩაწერა:
user.setName('john');
და ახლა ვცადოთ არაკორექტული მნიშვნელობის ჩაწერა:
user.setName(''); // შეცდომა
Employee კლასში ასაკის ნetter-ში
გააკეთეთ შემოწმება, რომ ასაკი უნდა იყოს
0-დან 120-მდე.
Employee კლასში ხელფასის getter-ში
გააკეთეთ ისე, რომ ხელფასის წაკითხვისას მისი
მნიშვნელობის ბოლოს დოლარის ნიშანი დაემატოს.