self
एक केवल पढ़ने के लिए संपत्ति है कि तुलना में अधिक लचीला, और कभी कभी की, window
सीधे पक्ष में इस्तेमाल किया जा सकता है। क्योंकि ऑपरेटिंग संदर्भ के आधार पर self
के संदर्भ में परिवर्तन (window.self
के विपरीत है, जो केवल मौजूद window
मौजूद है) यह वह जगह है। यह तुलना के लिए भी बहुत अच्छा है, जैसा कि अन्य ने उल्लेख किया है।
उदाहरण के लिए, यदि आप एक वेब वर्कर (जो अपने स्वयं के पृष्ठभूमि धागे में रहता है) के अंदर self
का उपयोग करते हैं, तो self
वास्तव में WorkerGlobalScope.self
का संदर्भ देगा। हालांकि, अगर आप एक सामान्य ब्राउज़र संदर्भ में self
उपयोग करते हैं, self
बस Window.self
के लिए एक संदर्भ वापस आ जाएगी (एक है कि document
है, addEventListener()
, और अन्य सभी सामान आप देखने के अभ्यस्त हैं)।
टी एल; डॉ window.self
में .self
एक पारंपरिक खिड़की/ब्राउज़र संदर्भ में Window.self
की अपनी इच्छा मुद्दे पर self
का उपयोग कर यदि window
मौजूद नहीं है मौजूद है, जबकि नहीं करेगा, या वेब कार्यकर्ता संदर्भ में WorkerGlobalScope.self
।
सामान्य रूप से, एमडीएन के पास इस विषय in their JavaScript docs पर एक महान लेखन है। :)
साइड नोट: var self = this
स्विच करने के बाद एक संदर्भ के लिए एक संदर्भ बनाए रखने के लिए:self
यहाँ के उपयोग के लिए एक स्थानीय चर घोषित करने के आम जे एस पैटर्न के साथ भ्रमित नहीं होना चाहिए।
आप यहां इसके बारे में अधिक पढ़ सकते हैं: Getting Out of Binding Situations in JavaScript।
वेब श्रमिक स्वयं और खिड़की का उपयोग करते समय एक ही चीज़ नहीं है। देखें [http://stackoverflow.com/questions/11219775/global-variable-in-web-worker][1] [1]: http://stackoverflow.com/questions/11219775/global -वर्तनीय-इन-वेब-वर्कर – user1872904