JavaScript Academy · पाठ

Proxy बनाना

ऑपरेशनों को बीच में पकड़ने के लिए ऑब्जेक्ट को रैप कीजिए।

पाठ 1, कुल 4 में से13 चरण

Proxy बनाना, CoddyKit पर JavaScript Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह JavaScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। JavaScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

प्रॉक्सी क्या है

प्रॉक्सी किसी ऑब्जेक्ट को लपेटता है और आपको प्रॉपर्टी पढ़ने, लिखने और हटाने जैसी मूलभूत कार्रवाइयों को बीच में रोकने देता है।

आप इसे new Proxy(target, handler) से बनाते हैं, जहाँ हैंडलर ऐसे ट्रैप परिभाषित करता है जो व्यवहार को अनुकूलित करते हैं।

खाली हैंडलर

खाली हैंडलर के साथ, प्रॉक्सी target की तरह बिल्कुल व्यवहार करता है। हर कार्रवाई सीधे आगे बढ़ जाती है।

const target = { greeting: 'hello' };
const proxy = new Proxy(target, {});

console.log(proxy.greeting);
proxy.greeting = 'hi';
console.log(target.greeting);

Target और प्रॉक्सी state साझा करते हैं

प्रॉक्सी target की कॉपी नहीं बनाता। दोनों एक ही अंतर्निहित ऑब्जेक्ट का संदर्भ देते हैं, इसलिए किसी एक के ज़रिए किया गया बदलाव दोनों में दिखाई देता है।

const target = { count: 0 };
const proxy = new Proxy(target, {});

proxy.count = 5;
console.log(target.count);
target.count = 10;
console.log(proxy.count);

get ट्रैप जोड़ना

get ट्रैप प्रॉपर्टी पढ़ने की कार्रवाई को बीच में रोकता है। यहाँ मान लौटाने से पहले हर पढ़ाई को लॉग किया जाता है।

const proxy = new Proxy({ name: 'Ada' }, {
  get(target, prop) {
    console.log('reading ' + prop);
    return target[prop];
  }
});

console.log(proxy.name);

ट्रैप के पैरामीटर

get ट्रैप को target, property नाम और receiver (प्रॉक्सी) मिलते हैं। आपको तय करना होता है कि क्या लौटाना है।

const proxy = new Proxy({ a: 1 }, {
  get(target, prop) {
    return prop in target ? target[prop] : 'missing';
  }
});

console.log(proxy.a);
console.log(proxy.b);

पढ़ते समय गणना की गई प्रॉपर्टियाँ

get ट्रैप ऐसे मान लौटा सकता है जिन्हें target वास्तव में संग्रहीत नहीं करता, यानी उन्हें उसी समय गणना कर सकता है।

const proxy = new Proxy({ first: 'Ada', last: 'Lovelace' }, {
  get(target, prop) {
    if (prop === 'full') return target.first + ' ' + target.last;
    return target[prop];
  }
});

console.log(proxy.full);

set ट्रैप जोड़ना

set ट्रैप लिखने की कार्रवाई को बीच में रोकता है। सफलता का संकेत देने के लिए आपको true लौटाना होगा, वरना असाइनमेंट को विफल माना जाएगा।

const proxy = new Proxy({}, {
  set(target, prop, value) {
    console.log('setting ' + prop + ' = ' + value);
    target[prop] = value;
    return true;
  }
});

proxy.score = 42;
console.log(proxy.score);

has ट्रैप

has ट्रैप in ऑपरेटर की कार्रवाई को बीच में रोकता है और आपको सदस्यता की जाँच को अनुकूलित करने देता है।

const proxy = new Proxy({ a: 1 }, {
  has(target, prop) {
    console.log('checking ' + prop);
    return prop in target;
  }
});

console.log('a' in proxy);
console.log('b' in proxy);

deleteProperty ट्रैप

deleteProperty ट्रैप delete की कार्रवाई को बीच में रोकता है। सफलता के लिए true लौटाएँ।

const proxy = new Proxy({ secret: 'x', ok: 'y' }, {
  deleteProperty(target, prop) {
    console.log('deleting ' + prop);
    delete target[prop];
    return true;
  }
});

delete proxy.secret;
console.log(Object.keys(proxy));

कई ट्रैप उपलब्ध हैं

get और set के अलावा, प्रॉक्सी has, deleteProperty, ownKeys, फ़ंक्शन के लिए apply, construct और अन्य कार्रवाइयों के लिए ट्रैप का समर्थन करते हैं। आपको केवल आवश्यक ट्रैप ही लागू करने होते हैं।

const proxy = new Proxy({ x: 1, y: 2 }, {
  ownKeys(target) {
    console.log('listing keys');
    return Object.keys(target);
  }
});

console.log(Object.keys(proxy));

प्रॉक्सी क्यों महत्वपूर्ण हैं

प्रॉक्सी target ऑब्जेक्ट को बदले बिना उसमें सत्यापन, लॉगिंग, डिफ़ॉल्ट मान और प्रतिक्रियाशीलता जोड़ने देते हैं। वे Vue जैसी रूपरेखाओं की प्रतिक्रियाशीलता प्रणाली को शक्ति देते हैं। अब आप get और set ट्रैप के बारे में अधिक गहराई से जानेंगे।

const logged = new Proxy({ v: 0 }, {
  get: (t, p) => { console.log('get ' + p); return t[p]; },
  set: (t, p, val) => { console.log('set ' + p); t[p] = val; return true; }
});
logged.v = 9;
console.log(logged.v);

त्वरित जाँच

new Proxy(target, handler) क्या बनाता है?

दोहराव: प्रॉक्सी बनाना

आपने ऑब्जेक्ट की कार्रवाइयों को बीच में रोकना सीखा:

  • new Proxy(target, handler) किसी ऑब्जेक्ट को ट्रैप के साथ लपेटता है।
  • खाली हैंडलर हर चीज़ को आगे बढ़ा देता है; प्रॉक्सी और target state साझा करते हैं।
  • सामान्य ट्रैप हैं: get, set, has, deleteProperty, ownKeys।
  • सफल होने पर set और delete ट्रैप को true लौटाना आवश्यक है।
शुरुआत निःशुल्क

एआई शिक्षक के साथ JavaScript सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
59
पाठ
200

अक्सर पूछे जाने वाले प्रश्न

क्या “Proxy बनाना” पाठ निःशुल्क है?

हाँ — JavaScript Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Proxy बनाना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। JavaScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Proxy बनाना” में मैं क्या सीखूँगा?

ऑपरेशनों को बीच में पकड़ने के लिए ऑब्जेक्ट को रैप कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ JavaScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या JavaScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर JavaScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“Proxy बनाना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस JavaScript Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर JavaScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Proxy बनाना
  2. get और set ट्रैप
  3. Reflect API
  4. Proxy के व्यावहारिक उपयोग
← JavaScript Academy पर वापस जाएँ