जावास्क्रिप्ट में ओओपी में सेटर्स और गेटर्स के फायदे
पिछले पाठ में हमने हर गुण के लिए गेटर और सेटर बनाया। सवाल उठ सकता है कि इतनी जटिलताओं की क्या जरूरत है, क्योंकि वास्तव में वही प्रभाव प्राप्त किया जा सकता है यदि गुणों को सार्वजनिक बनाया जाए, न कि निजी।
बात यह है कि गेटर्स और सेटर्स के फायदे हैं: गुण तक पहुंचने से पहले कुछ जांचें की जा सकती हैं। उदाहरण के लिए, हमारे मामले में नाम और उपनाम लिखते समय हम जांच सकते हैं कि नया मान खाली स्ट्रिंग नहीं है:
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 क्लास में सेटर में
उम्र की जांच करें कि
उम्र 0 से 120
के बीच होनी चाहिए।
Employee क्लास के गेटर में
वेतन को ऐसा बनाएं कि
वेतन को पढ़ते समय उसके
मान के अंत में डॉलर का चिह्न जोड़ा जाए।