javascript - क्या एक ऑब्जेक्ट स्वचालित रूप से जावास्क्रिप्ट में खुद को नष्ट कर सकता है एक बार अपने उद्देश्य को हासिल कर लिया है?




oop (2)

मैं सोच रहा हूं कि जावास्क्रिप्ट में किसी ऑब्जेक्ट के लिए अपने काम को खत्म करने के बाद खुद को हटाने के लिए संभव है।

उदाहरण के लिए, मेरे पास निम्न वस्तु है ...

var myObject = Object.create(baseObject);
myObject.init = function() {
  /* do some stuff... */
   delete this;
};
myObject.init();

क्या यह काम करता है? यदि नहीं, तो क्या एक और तरीका है?


नहीं, this ऑब्जेक्ट का सिर्फ एक स्थानीय संदर्भ है, इसलिए इसे हटाने से वस्तु मौजूद नहीं है। इस तरह स्वयं को नष्ट करने के उद्देश्य के लिए कोई रास्ता नहीं है यदि आपके पास बड़े ऑब्जेक्ट हैं जो आपको विश्वास है कि बाद में मिटाना चाहिए तो आपको मुखौटा या रणनीति पैटर्न का उपयोग करना चाहिए


यह पहले से काम नहीं करेगा, क्योंकि this मान निष्पादन संदर्भ से जुड़ा हुआ है।

अब आप सोच सकते हैं कि delete myObject; को delete myObject; ( myObject को delete myObject; ) काम कर सकता है, लेकिन वह यह भी नहीं करेगा

वेरिएबल्स वास्तव में वेरिएबल ऑब्जेक्ट के गुण हैं, यह ऑब्जेक्ट कोड से सुलभ नहीं है, यह सिर्फ स्कोप श्रृंखला में है , जहां आप चर घोषणाएं करते हैं।

वैरिएबल स्टेटमेंट, उन गुणों को { DontDelete } एट्रिब्यूट के साथ बनाता है, और यह { DontDelete } ऑपरेटर को असफल होने के कारण होता है।

एक विकल्प यदि आप इसे प्राप्त करना चाहते हैं, तो अपने myObject उदाहरण को समाप्त करने के लिए है, लेकिन यह गारंटी नहीं देता कि एक अन्य संदर्भ अभी भी उस ऑब्जेक्ट की ओर इशारा कर रहा है।

अनुशंसित व्याख्यान:






oop