"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > क्या जावास्क्रिप्ट अप्रत्याशित गुणों के लिए डायनामिक गेटर्स और सेटर्स लागू कर सकता है?

क्या जावास्क्रिप्ट अप्रत्याशित गुणों के लिए डायनामिक गेटर्स और सेटर्स लागू कर सकता है?

2024-11-08 को प्रकाशित
ब्राउज़ करें:748

 Can JavaScript Implement Dynamic Getters and Setters for Unpredictable Properties?

क्या जावास्क्रिप्ट डायनामिक गेटर्स/सेटर्स को लागू कर सकता है?

डायनामिक गेटर्स और सेटर्स जावास्क्रिप्ट ऑब्जेक्ट्स को पूर्वनिर्धारित गुणों से परे संपत्ति पहुंच और संशोधन को संभालने की अनुमति देते हैं। जबकि पहले की जावास्क्रिप्ट तकनीकों ने ज्ञात गुणों के लिए विशिष्ट गेटर्स और सेटर्स को नियोजित किया था, यह लेख किसी भी अपरिभाषित गुणों के लिए कैच-ऑल गेटर्स और सेटर्स को लागू करने की संभावना का पता लगाता है।

ES2015 प्रॉक्सी: एक गतिशील समाधान

ES2015 ने जावास्क्रिप्ट प्रॉक्सी पेश की, जो उन वस्तुओं के निर्माण को सक्षम बनाती है जो अन्य वस्तुओं के लिए मध्यस्थ के रूप में काम करती हैं। यह क्षमता गतिशील गेटर्स और सेटर्स को खोलती है:

const original = {
    example: "value",
};
const proxy = new Proxy(original, {
    get(target, name, receiver) {
        if (Reflect.has(target, name)) {
            let rv = Reflect.get(target, name, receiver);
            if (typeof rv === "string") {
                rv = rv.toUpperCase();
            }
            return rv;
        }
        return "missing";
    },
});

console.log(`proxy.example = ${proxy.example}`); // "proxy.example = VALUE"
console.log(`proxy.unknown = ${proxy.unknown}`); // "proxy.unknown = missing"

इस उदाहरण में, प्रॉक्सी ऑब्जेक्ट मूल ऑब्जेक्ट के लिए प्रॉपर्टी एक्सेस को रोकता है। स्ट्रिंग प्रॉपर्टी तक पहुंचने पर, प्रॉक्सी इसे अपरकेस में परिवर्तित करता है और इसे वापस कर देता है; अज्ञात गुणों के लिए, यह अपरिभाषित के बजाय "लापता" लौटाता है।

यदि ब्राउज़र ES2015 (ES6) का समर्थन करता है तो यह कार्यान्वयन क्रॉस-ब्राउज़र संगत है। पुराने ब्राउज़रों के लिए, पॉलीफ़िल या वैकल्पिक तकनीकों का उपयोग करने पर विचार करें। प्रॉक्सी गतिशील गेटर्स और सेटर्स के लिए एक लचीला समाधान प्रदान करते हैं, जो मूल ऑब्जेक्ट को संशोधित किए बिना कुशल संपत्ति प्रबंधन और संपत्ति आत्मनिरीक्षण को सक्षम करते हैं।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3