जावास्क्रिप्ट setters और Getters:
आमतौर पर सेटर और गेटर तरीकों को JavaScript ऑब्जेक्ट में निम्न सिंटैक्स का पालन करें। एक वस्तु एकाधिक गुणों के साथ बनाई गई है। सेटर विधि में एक तर्क है, जबकि गेटर विधि में कोई तर्क नहीं है। दोनों कार्य हैं।
किसी दिए गए संपत्ति है कि पहले से ही वस्तु के भीतर बनाई गई है के लिए, सेट विधि आम तौर पर एक अगर/किसी और बयान है कि किसी भी समय है कि संपत्ति सीधे पहुँचा और कोड, उर्फ "सेट" के माध्यम से बाद में असाइन किया गया है के लिए इनपुट की पुष्टि करता है। यह अक्सर एक if (typeof [arg] === 'निश्चित प्रकार का मान, जैसे: संख्या, स्ट्रिंग, या बूलियन') कथन का उपयोग करके किया जाता है, तो कोड ब्लॉक आमतौर पर इसे निर्दिष्ट करता है। (विशिष्ट) संपत्ति-नाम तर्क के लिए। (कभी-कभी कंसोल पर लॉग इन करने वाले संदेश के साथ।) लेकिन इसे कुछ भी वापस करने की आवश्यकता नहीं है; यह तर्क के मूल्यांकन के लिए बस इस विशिष्ट विशेषता को सेट कर रहा है। अन्य बयान, हालांकि, लगभग हमेशा एक (त्रुटि) संदेश कंसोल पर लॉग होता है जो उपयोगकर्ता को संपत्ति की कुंजी-मान के लिए एक अलग मान दर्ज करने के लिए संकेत देता है जो कि स्थिति को पूरा करता है।
गेटर विधि मूल रूप से विपरीत है। यह किसी भी तर्क के बिना, "प्राप्त करने" के लिए कोई फ़ंक्शन सेट करता है, यानी जब आप केवल उस विशिष्ट-संपत्ति को कॉल करते हैं जिसे आप सेट करते हैं तो एक (नोटर) मान/संपत्ति वापस कर दें। यह उस ऑब्जेक्ट प्रॉपर्टी को कॉल करने के जवाब में आपको सामान्य रूप से प्राप्त होने वाली चीज़ से अलग कुछ मिलता है।
सेटर्स और गेटर्स का मूल्य आसानी से संपत्ति कुंजी-मानों के लिए देखा जा सकता है जिन्हें आप सीधे संशोधित नहीं करना चाहते हैं, जब तक कि कुछ शर्तों को पूरा नहीं किया जाता। इस प्रकार के गुणों के लिए, संपत्ति नाम को आगे बढ़ाने के लिए अंडरस्कोर का उपयोग करें, और गेटटर का उपयोग करें ताकि आप बिना अंडरस्कोर के संपत्ति को कॉल कर सकें। फिर उन स्थितियों को परिभाषित करने के लिए एक सेटटर का उपयोग करें जिसके द्वारा संपत्ति के कुंजी-मूल्य को एक्सेस किया जा सकता है और असाइन किया जा सकता है, a.k.a. "set"। उदाहरण के लिए, मैं इस ऑब्जेक्ट की गुणों के लिए दो मूल सेटर्स और गेटर्स शामिल करूंगा। नोट: मैं स्थिर चर का उपयोग करता हूं क्योंकि ऑब्जेक्ट्स म्यूटेबल रहते हैं (सृजन के बाद)।
const person = {
_name: 'Sean';
_age: 27;
set age(ageIn) {
if (typeof ageIn === 'number') {
this._age = ageIn;
}
else {
console.log(`${ageIn} is invalid for the age's key-value. Change ${ageIn} to/into a Number.`);
return 'Invalid Input.';
}
},
get age() {
return this._age;
},
set name(nameIn) {
if (typeof nameIn === 'string') {
this._name = nameIn;
} else {
console.log(`Change ${nameIn} to/into a(ny) String for the name's
key-value.`);
return 'Invalid Input.';
}
},
get name() {
return this._name;
}
};
कहाँ यह दिलचस्प हो जाता है जब आप सेट करने का प्रयास /, _age संपत्ति के लिए नई कुंजी-मान असाइन क्योंकि यह क्रम में अगर सशर्त पूरा करने के लिए सफलतापूर्वक असाइन करना होता है, जिसका अर्थ है कि सभी कार्य मान्य होते हैं , आदि
person.age = 'twenty-eight'; /* output: twenty-eight is invalid for the
age's key-value. Change twenty-eight to/into a Number. */
console.log(person.age); // output: 27 (twenty-eight was never assigned)
person.age = 28; // output: none
console.log(person.age); // output: 28
ध्यान दें कि मैं व्यक्ति के माध्यम से व्यक्ति.एज संपत्ति का उपयोग कैसे कर सकता हूं। संपत्ति संपत्ति प्राप्तकर्ता विधि के लिए धन्यवाद। साथ ही, उम्र के लिए इनपुट संख्याओं तक सीमित कैसे था, नाम संपत्ति के लिए इनपुट अब प्रतिबंधित/स्ट्रिंग पर सेट है।
आशा है कि इससे चीजों को साफ़ करने में मदद मिलेगी! साथ ही, और अधिक के लिए कुछ लिंक:
https://johnresig.com/blog/javascript-getters-and-setters/
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get
https://www.infragistics.com/community/blogs/infragistics/archive/2017/09/19/easy-javascript-part-8-what-are-getters-and-setters.aspx
साई। और पूछने के तुरंत बाद, मुझे एक प्रासंगिक लिंक मिल गया। यह जावास्क्रिप्ट 1.5 है: – chinchilla
यह क्रोम के कुछ संस्करणों में काम करता है, लेकिन कीवर्ड के बिना गेटर्स/सेटर्स का उपयोग करके आप बेहतर हैं। –
आप एक उत्तर में मिले प्रासंगिक लिंक को पोस्ट कर सकते हैं, थोड़ी देर प्रतीक्षा करें (यह अनिवार्य है) और फिर उस उत्तर को स्वीकार करें। इससे अन्य लोगों की मदद मिलेगी जो एक ही चीज़ की तलाश में आते हैं, आप शायद कुछ प्रतिष्ठा अंक प्राप्त करेंगे, और आपको लगता है कि इंटरनेट को बेहतर जगह बनाने के साथ गर्म अस्पष्ट लग रहा है। –