Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में पास बाय रेफरेंस समझाएं?


JavaScript एक पास-बाय-वैल्यू भाषा है। लेकिन ऑब्जेक्ट्स के लिए, वैल्यू उनका रेफरेंस होती है। इसलिए उदाहरण के लिए, यदि आप एक int को पैरामीटर के रूप में फ़ंक्शन में पास करते हैं और फ़ंक्शन में इसके मान को बढ़ाते हैं, तो इसका मान कॉलर के संदर्भ में अपडेट नहीं होगा:

उदाहरण

let i = 0; function increment(x) { x = x + 1 console.log(x) } increment(i) console.log(i)

आउटपुट

1 0

जब आप कोई ऑब्जेक्ट पास करते हैं और फ़ंक्शन के संदर्भ में उस ऑब्जेक्ट के रेफरेंस को अपडेट करते हैं, तो यह ऑब्जेक्ट को प्रभावित नहीं करेगा। लेकिन यदि आप ऑब्जेक्ट के इंटर्नल्स को म्यूटेट करते हैं, तो यह ऑब्जेक्ट में प्रतिबिंबित होगा।

उदाहरण

let obj = {'foo': 'bar'}; function updateRef(x) { // x का लोकल रेफरेंस अपडेट होता है, obj को प्रभावित नहीं करता x = {} } function addHelloWorld(y) { // y द्वारा रेफरेंस्ड ऑब्जेक्ट में नई प्रॉपर्टी जोड़ें y['hello'] = 'world'; } console.log(obj) updateRef(obj) console.log(obj) addHelloWorld(obj) console.log(obj)

आउटपुट

{ foo: 'bar' } { foo: 'bar' } { foo: 'bar', hello: 'world' }

ध्यान दें कि ऑब्जेक्ट रेफरेंस परिवर्तन ने ऑब्जेक्ट को प्रभावित नहीं किया। लोकल वेरिएबल x को पुनः असाइन किया गया था। दूसरे फ़ंक्शन में हालांकि, y obj ऑब्जेक्ट को रेफरेंस कर रहा था और उस ऑब्जेक्ट की आंतरिक स्थिति को म्यूटेट किया। इसने मूल ऑब्जेक्ट में परिवर्तन किया।

  1. उदाहरण के साथ जावास्क्रिप्ट में डीप क्लोनिंग ऑब्जेक्ट समझाएं उदाहरण के साथ जावास्क्रिप्ट में डीप क्लोनिंग ऑब्जेक्ट समझाएं

    जावास्क्रिप्ट में डीप क्लोनिंग ऑब्जेक्ट का कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Document</title> <style>    body

  1. जावास्क्रिप्ट में RegExp ऑब्जेक्ट जावास्क्रिप्ट में RegExp ऑब्जेक्ट

    RegExp ऑब्जेक्ट का उपयोग टेक्स्ट में पैटर्न मिलान, खोज और टेक्स्ट के भाग को निकालने के लिए किया जाता है। RegExp ऑब्जेक्ट को या तो RegExp कंस्ट्रक्टर या लिटरल सिंटैक्स का उपयोग करके बनाया जा सकता है। जावास्क्रिप्ट में RegExp ऑब्जेक्ट के लिए निम्नलिखित कोड है: उदाहरण <!DOCTYPE html> <html la

  1. जावास्क्रिप्ट में ऑब्जेक्ट इनिशियलाइज़र जावास्क्रिप्ट में ऑब्जेक्ट इनिशियलाइज़र

    एक ऑब्जेक्ट इनिशियलाइज़र एक एक्सप्रेशन है जो हमें नए बनाए गए ऑब्जेक्ट को इनिशियलाइज़ करने की अनुमति देता है। यह एक ऑब्जेक्ट के प्रॉपर्टी नामों और संबंधित मानों के शून्य या अधिक जोड़ों की कॉमा-सेपरेटेड सूची है जो कर्ली ब्रेसेस {} में संलग्न होती है। जावास्क्रिप्ट में ऑब्जेक्ट इनिशियलाइज़र के लिए निम