var a = {
"example" : true
};
var x = [a], y = [a];
delete x[0];
console.log(y);
उपर्युक्त कोड में, क्या हटाया जाना संभव है, न कि केवल x में संदर्भ?क्या ऑब्जेक्ट को स्वयं हटाना संभव है, संदर्भ
var a = {
"example" : true
};
var x = [a], y = [a];
delete x[0];
console.log(y);
उपर्युक्त कोड में, क्या हटाया जाना संभव है, न कि केवल x में संदर्भ?क्या ऑब्जेक्ट को स्वयं हटाना संभव है, संदर्भ
कि कचरा कलेक्टर पर निर्भर है। जब तक वस्तु के कुछ संदर्भ हैं, तब तक यह कचरा नहीं होगा।
यदि आप इसे साफ़ करना चाहते हैं, तो सुनिश्चित करें कि कोई और संदर्भ नहीं हैं।
तो अपने प्रश्न का उत्तर देने के लिए, नहीं, किसी ऑब्जेक्ट को स्पष्ट रूप से नष्ट करने का कोई तरीका नहीं है। यदि a
और y[0]
अभी भी इसका संदर्भ दे रहे हैं, तो आप इसे अपने x
चर से नहीं कर सकते हैं।
स्पष्ट होने के लिए, x[0]
a
का संदर्भ नहीं दे रहा है। यह स्मृति में उसी वस्तु को इंगित कर रहा है कि a
संदर्भित है।
तो, सूचकांक को जानने के बिना, वाई से निकालने का कोई तरीका नहीं है? – glider
@ ग्लाइडर: 'y' ऐरे में सभी आइटमों को संदर्भित करने के अलावा, या इसे देखने के लिए ऐरे पर पुनरावृत्ति (या समर्थित होने पर' .indexOf() 'का उपयोग करके), वास्तव में नहीं। – user113716
धन्यवाद, यह सब मैं जानना चाहता था। – glider
मुझे लगता है कि आपको यह प्रश्न देखना चाहिए।
"हटाएं;" के बारे में क्या ? – Krumelur
आप वस्तु '' –
ऑब्जेक्ट को डी-रेफरेंस करना चाहते हैं यदि आप मैन्युअल मेमोरी प्रबंधन चाहते हैं, तो इसे भूल जाएं। ऑब्जेक्ट हटा दिया जाता है जब जीसी इसे फिट देखता है और जब यह साबित हो सकता है कि कोई और संदर्भ नहीं है, तो पहले नहीं। – delnan