मैंने एक HTML5 गेम बनाया जिसमें कई छोटे स्तर शामिल हैं। जब खिलाड़ी दरवाजे तक पहुंच जाता है, तो दूसरा स्तर लोड होता है। जब एक स्तर यह लोड कर रहा है मूल रूप से सिर्फ []
करने के लिए सभी उदाहरण सरणियों सेट और फिर उन्हें में सामान धक्का, चीजों की नई उदाहरणों बनाने के द्वारा, उदाहरण के लिए:जावास्क्रिप्ट में, क्या मुझे एक नया लोड करने के बाद पिछले स्तर के उदाहरणों को हटा देना चाहिए?
enemies = [] //this has previously been full of pointers from the old level
for (i = 0; i < n_enemies; i ++)
enemies.push(new Enemy());
लेकिन, यह मेरे ध्यान में आया है कि केवल स्थापित करने []
पर पॉइंटर्स से भरा एक सरणी, वास्तव में उदाहरणों को हटा नहीं देती है! तो, क्या जावास्क्रिप्ट स्वचालित रूप से ऐसा करता है? या क्या मुझे प्रत्येक उदाहरण को delete
करना है?
इसके अलावा 'हटाएं' केवल ऑब्जेक्ट्स के गुणों के लिए परिभाषित किया गया है, इसलिए जावास्क्रिप्ट में सरणी चर को हटाने का कोई तरीका भी नहीं है - आपको बस यह मानना होगा कि जेएस इंजन सभी संदर्भों को हटा दिए जाने के बाद कचरा संग्रह का ख्याल रखेगा। – wheresrhys
wheresrhys - ऐरे सदस्य संख्यात्मक नामों के साथ केवल गुण हैं। उन पर काम हटाएं (उदा। 'सरणी हटाएं [' 0 ']' शून्य से शुरू होने वाले सरणी के पहले सदस्य को हटा देता है), लेकिन जैसा कि जिविंग्स कहते हैं, यह अनावश्यक है। – RobG
@RobG - मुझे शायद स्पष्ट होना चाहिए - "सरणी चर" से मेरा मतलब है कि वेरिएबल वेरे हैं जो सरणी में संग्रहीत आदिम मूल्यों के बजाय सरणी हैं। – wheresrhys