JavaScript में ऑब्जेक्ट्स का रेफरेंस द्वारा पासिंग
ऐरे और ऑब्जेक्ट अन्य आदिम डेटा प्रकारों से कुछ भिन्न होते हैं। अंतर यह है कि वह चर, जो एक ऐरे रखता है, वास्तव में उसे नहीं रखता, बल्कि केवल उसकी ओर संकेत करता है।
व्यवहार में इसका मतलब है कि किसी ऑब्जेक्ट को दूसरे चर में लिखने पर, दोनों चर एक ही ऑब्जेक्ट की ओर संकेत करेंगे। आइए व्यवहार में कोशिश करते हैं। मान लीजिए हमारे पास निम्नलिखित ऑब्जेक्ट है:
let obj1 = {a: 1, b: 2, c: 3};
इसे एक चर से दूसरे चर में नियत करें:
let obj2 = obj1;
अब चरों में से एक को बदलें:
obj2.a = '!';
परिणामस्वरूप परिवर्तन दूसरे चर में भी दिखाई देंगे:
console.log(obj1); // {a: '!', b: 2, c: 3}
कोड चलाए बिना निर्धारित करें कि कंसोल में क्या प्रिंट होगा:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
console.log(arr2);
कोड चलाए बिना निर्धारित करें कि कंसोल में क्या प्रिंट होगा:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[1] = 'b';
console.log(arr1);
कोड चलाए बिना निर्धारित करें कि कंसोल में क्या प्रिंट होगा:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[0] = 'b';
console.log(arr2);