Avatar ·

JavaScript: मान द्वारा या संदर्भ द्वारा पास करना? भ्रम को समझना

सभी को नमस्ते! मैं JavaScript में नया हूँ और यह समझ नहीं पा रहा हूँ कि फंक्शन में आर्गुमेंट्स वास्तव में कैसे पास होते हैं। कुछ लेखों में लिखा है कि JS सब कुछ value द्वारा पास करता है, दूसरों में कहा गया है कि objects reference द्वारा पास होते हैं। मैंने एक सरल कोड लिखा जिसने मुझे पूरी तरह से भ्रमित कर दिया।\n\nयहाँ एक उदाहरण है:\n\n```javascript\nfunction changeValue(x) {\n x = 10;\n console.log('फंक्शन के अंदर:', x);\n}\n\nlet a = 5;\nchangeValue(a);\nconsole.log('फंक्शन के बाद:', a); // 5 — सब स्पष्ट है, संख्या नहीं बदली\n```\n\nयह समझ में आता है — primitive value द्वारा पास होता है। लेकिन जब मैं object के साथ प्रयास करता हूँ:\n\n```javascript\nfunction changeObject(obj) {\n obj.name = 'नया नाम';\n}\n\nlet user = { name: 'पुराना नाम' };\nchangeObject(user);\nconsole.log(user.name); // 'नया नाम' — object बदल गया! तो ऐसा लगता है कि