जावास्क्रिप्ट में सक्रियण वस्तु क्या है?


13

किसी दिए गए निष्पादन संदर्भ में, चर वस्तु उस निष्पादन संदर्भ की सक्रियता वस्तु है।

मेरे शोध से ऑनलाइन, मैं पिछले वाक्य को अलग-अलग तरीकों से खोजा जा सकता है, लेकिन कोई भी यह बताने में सक्षम नहीं है कि यह क्या है।

एक सक्रियण वस्तु क्या है?


एक सक्रियण वस्तु , स्कोप-चेन में सबसे ऊपरी वस्तु है, जिसमें सबसे निचला भाग वैश्विक वस्तु है । देखें इस उत्तर अधिक जानकारी के लिए।
इकरस

जवाबों:


17

मुझे जड़ों से शुरू करते हैं ...

निष्पादन संदर्भ एक वस्तु है जिसमें निम्न शामिल हैं:

  • चर वस्तु, जो कार्यों के मामले में सक्रियण वस्तु है
  • स्कोप चेन, जिसे आप बाहरी स्कोप की एक लिंक्ड सूची के रूप में सोच सकते हैं
  • this मूल्य

चर वस्तु एक अमूर्त चीज है, जो उन में से एक हो सकती है:

  • वैश्विक वस्तु (वैश्विक संदर्भ में) - वह स्थान जहाँ वैश्विक संस्करण (जैसे window, documentया consoleकिसी ब्राउज़र में) रहते हैं
  • सक्रियण ऑब्जेक्ट (कार्यों के लिए, जो ECMAScript में स्कोप को परिभाषित करते हैं)

सक्रियण वस्तु एक वस्तु है जो धारण करती है:

  • समारोह के औपचारिक args
  • arguments इस फ़ंक्शन के लिए ऑब्जेक्ट
  • कोई भी var और (नाम) इस फ़ंक्शन के अंदर कार्य करता है

तो, सक्रियण वस्तु केवल चर वस्तु का एक विशेष मामला है।

यह मूल रूप से सभी स्थानीय सामानों के लिए एक कंटेनर है जिसे आप एक फ़ंक्शन के अंदर नाम से एक्सेस कर सकते हैं, सिवाय इसके thisमैं यहाँ अभेद्य हो सकता हूँ, लेकिन मुझे लगता है कि यह है।

कुछ अच्छी तस्वीरों के साथ और अधिक स्पष्टीकरण:


2

एक सक्रियण वस्तु वह गुण है जो एक निष्पादन फ़ंक्शन के पर्यावरण और दायरे का वर्णन करने वाले गुणों को रखने के लिए उपयोग किया जाता है। यह इस ऑब्जेक्ट पर है कि उदाहरण के लिए तर्क कार्य करते हैं, संग्रहीत होते हैं। परिभाषा के अनुसार, किसी चीज़ को सक्रिय करने के लिए उस चीज़ को कार्य करने या फंक्शन करने का कारण बनता है। इसलिए जब आप 'एक्टिवेशन ऑब्जेक्ट' सुनते हैं, तो 'FUNCTION' ऑब्जेक्ट, या बेहतर अभी तक, रूट ऑब्जेक्ट जो एक फ़ंक्शन के लिए LOCAL है (यानी, FUNCTION LOCAL OBJECT) सोचते हैं।

परिवर्तनीय वस्तु के संबंध में, एक सक्रियण वस्तु कमोबेश एक परिवर्तनीय वस्तु का एक ठोस उदाहरण है, जो अपने आप में (चर वस्तु का जिक्र यहां) एक ABSTRACT वस्तु प्रकार है। जैसा कि यहाँ कहा गया है ...

शब्द 'वेरिएबल ऑब्जेक्ट' एक सामान्य या सार शब्द है, जिसका उपयोग किसी भी ऑब्जेक्ट को संदर्भित करने के लिए किया जाता है जो वर्तमान में निष्पादित संदर्भ के पर्यावरण और गुंजाइश का वर्णन करने वाले गुणों को रखता है।

इसलिए, वैश्विक निष्पादन संदर्भ के वातावरण और दायरे के भीतर (यानी, जब एक समारोह के बाहर), वैश्विक वस्तु चर वस्तु है। ब्राउज़र में, क्योंकि वैश्विक या सबसे बाहरी निष्पादन वाला वातावरण WINDOW है, यह वह windowवस्तु है जो समाप्त होती है जिसका उपयोग चर वस्तु के रूप में किया जा रहा है। यही कारण है कि varफ़ंक्शन के बाहर घोषित किए गए चर windowऑब्जेक्ट पर समाप्त होते हैं ।

किसी फ़ंक्शन के दायरे में, हालांकि, यह सक्रियण ऑब्जेक्ट (यानी, फ़ंक्शन स्थानीय ऑब्जेक्ट) है जो कि चर ऑब्जेक्ट है क्योंकि यह वह ऑब्जेक्ट है जो उन गुणों को संग्रहीत करने के लिए उपयोग किया जाता है जो एक निष्पादित फ़ंक्शन के दायरे का वर्णन करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.