पारंपरिक जावास्क्रिप्ट में, गेटर्स और सेटर्स को विशिष्ट संपत्ति नामों के लिए परिभाषित किया गया है। हालाँकि, ES2015 में पेश किए गए प्रॉक्सी का उपयोग करके अधिक लचीले डायनेमिक गेटर्स और सेटर्स बनाना संभव है। प्रॉक्सी का उपयोग करके उन्हें लागू करने का तरीका यहां बताया गया है:
"use strict"; यदि (प्रॉक्सी का प्रकार == "अपरिभाषित") { नई त्रुटि फेंकें ("यह ब्राउज़र प्रॉक्सी का समर्थन नहीं करता"); } चलो मूल = { उदाहरण: "मूल्य", }; चलो प्रॉक्सी = नया प्रॉक्सी (मूल, { प्राप्त करें (लक्ष्य, नाम, रिसीवर) { यदि (प्रतिबिंब.है(लक्ष्य, नाम)) { चलो rv = Reflect.get(लक्ष्य, नाम, रिसीवर); // लौटने से पहले यहां मान संशोधित करें वापसी आर.वी.; } // अज्ञात गुणों के लिए डिफ़ॉल्ट व्यवहार को परिभाषित करें वापसी "लापता"; } });उदाहरण उपयोग"use strict";
if (typeof Proxy == "undefined") {
throw new Error("This browser doesn't support Proxy");
}
let original = {
example: "value",
};
let proxy = new Proxy(original, {
get(target, name, receiver) {
if (Reflect.has(target, name)) {
let rv = Reflect.get(target, name, receiver);
// Modify the value here before returning
return rv;
}
// Define default behavior for unknown properties
return "missing";
}
});
console.log(`proxy.example = ${proxy.example}`); // "प्रॉक्सी.उदाहरण = मान"
कंसोल.लॉग(`प्रॉक्सी.अज्ञात = ${प्रॉक्सी.अज्ञात}`); // "proxy.unknown = missing"क्रॉस-ब्राउज़र संगतताconsole.log(`proxy.example = ${proxy.example}`); // "proxy.example = VALUE"
console.log(`proxy.unknown = ${proxy.unknown}`); // "proxy.unknown = missing"
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3