यहां दो वस्तुएं हैं, उपयोगकर्ता और उपयोगकर्ता 1। उपयोगकर्ता को user1 में कॉपी किया जाता है। उपयोगकर्ता को तब शून्य पर असाइन किया जाता है, लेकिन उपयोगकर्ता 1 नहीं बदलता है।

let user = {
    name : 'Nagendra Kamath',
    age : 22,
    goodMorn(){
        console.log('Good Morning '+ this.name);
    }
};

let user1 = user;

user = null; 


user1.goodMorn(); // even if we have assigned user to null the value of user1 remains same
user.goodMorn();  // throws an error

कृपया मुझे बताएं कि यह कैसे संभव है ??

1
Nagendra Kamath 26 मार्च 2020, 14:26

1 उत्तर

सबसे बढ़िया उत्तर

यहां आप एक ऐसी वस्तु बनाते हैं जो स्मृति में मौजूद है, और इस वस्तु का संदर्भ user है।

let user = {
    name : 'Nagendra Kamath',
    age : 22,
    goodMorn(){
        console.log('Good Morning '+ this.name);
    }
};

अब आप उसी ऑब्जेक्ट के लिए एक नया संदर्भ user1 असाइन करें।

let user1 = user;

अब आप user मान null को असाइन करें

user = null;

लेकिन वस्तु अभी भी मौजूद है, और वस्तु का संदर्भ user1 भी मौजूद है, इसलिए यह ठीक है कि

user1.goodMorn(); // works, because it's still a reference to the object.
user.goodMorn();  // throws an error, because it's value is null

यहां महत्वपूर्ण बात: user1, user का संदर्भ नहीं है, क्योंकि user भी एक संदर्भ है। user1 स्मृति में मूल वस्तु का संदर्भ है, user1 संदर्भ के समान संदर्भ है user

1
qiAlex 26 मार्च 2020, 11:35