जावास्क्रिप्ट में ओओपी में एक्सेसर गुण
ऑब्जेक्ट के दो प्रकार के गुण होते हैं।
पहला प्रकार डेटा गुण (data properties) हैं। हम पहले से ही जानते हैं कि उनके साथ कैसे काम करना है। हमारे द्वारा अब तक उपयोग किए गए सभी गुण, डेटा गुण थे।
दूसरे प्रकार के गुणों पर हमने अभी तक विचार नहीं किया है। ये एक्सेसर गुण (accessor properties) हैं। अपने सार में, ये ऐसे फ़ंक्शन हैं जिनका उपयोग मान निर्दिष्ट करने और प्राप्त करने के लिए किया जाता है, लेकिन बाहरी कोड में वे सामान्य ऑब्जेक्ट गुणों की तरह दिखते हैं।
एक्सेसर गुण बनाए जाते हैं
कीवर्ड get और set का उपयोग करके, जिन्हें
मेथड्स घोषित करते समय लिखा जाता है:
class User {
get name() {
}
set name(name) {
}
}
ऐसी घोषणा के परिणामस्वरूप
हमारी क्लास के पास गुण
name होगा। इसके साथ ही, इस गुण को
पढ़ने का प्रयास करने पर
वह मेथड कॉल होगी,
जो get के माध्यम से घोषित की गई है:
let name = user.name;
लिखने का प्रयास करने पर वह मेथड कॉल होगी,
जो set के माध्यम से घोषित की गई है:
user.name = 'john';
निम्नलिखित क्लास दी गई है:
class Employee {
get name() {
console.log('get');
}
set name(name) {
console.log('set');
}
}
इस क्लास की एक वस्तु बनाएं
और गुण name से डेटा
लिखने और पढ़ने का प्रयास करें।