this
तत्व है, $(this)
उस तत्व के साथ निर्मित jQuery वस्तु है
$(".class").each(function(){
//the iterations current html element
//the classic JavaScript API is exposed here (such as .innerHTML and .appendChild)
var HTMLElement = this;
//the current HTML element is passed to the jQuery constructor
//the jQuery API is exposed here (such as .html() and .append())
var jQueryObject = $(this);
});
गहरा रूप
this
एमडीएन एक निष्पादन संदर्भ में निहित है
गुंजाइश वर्तमान निष्पादन संदर्भ ECMA को संदर्भित करता है । समझने के लिए this
, जावास्क्रिप्ट में जिस तरह से निष्पादन संदर्भ संचालित होते हैं , उसे समझना महत्वपूर्ण है।
निष्पादन संदर्भ इसे बांधते हैं
जब नियंत्रण एक निष्पादन संदर्भ में प्रवेश करता है (कोड को उस दायरे में निष्पादित किया जा रहा है) तो चर के लिए वातावरण सेटअप है (लेक्सिकल और चर वातावरण) - अनिवार्य रूप से यह चर के लिए एक क्षेत्र सेट करता है जिसमें प्रवेश करने के लिए पहले से ही सुलभ थे, और स्थानीय चर के लिए एक क्षेत्र होना चाहिए संग्रहीत), और बाध्यकारी का this
होता है।
jQuery इसे बांधता है
निष्पादन संदर्भ एक तार्किक स्टैक बनाते हैं। नतीजा यह है कि स्टैक में गहरे संदर्भ पिछले चर तक पहुंचते हैं, लेकिन उनके बाइंडिंग को बदल दिया गया हो सकता है। हर बार jQuery कॉलबैक फ़ंक्शन को कॉल करता है, यह apply
MDN का उपयोग करके इस बाइंडिंग को बदल देता है ।
callback.apply( obj[ i ] )//where obj[i] is the current element
कॉलिंग apply
का परिणाम यह है कि jQuery कॉलबैक फ़ंक्शन के अंदर, कॉलबैक फ़ंक्शनthis
द्वारा उपयोग किए जा रहे वर्तमान तत्व को संदर्भित करता है ।
उदाहरण के लिए, .each
कॉलबैक फ़ंक्शन आमतौर पर उपयोग के लिए अनुमति देता है .each(function(index,element){/*scope*/})
। उस दायरे में, this == element
सच है।
jQuery के कॉलबैक वर्तमान तत्व के साथ बुलाए जाने वाले फ़ंक्शन को बांधने के लिए लागू फ़ंक्शन का उपयोग करते हैं। यह तत्व jQuery वस्तु के तत्व सरणी से आता है। निर्मित प्रत्येक jQuery ऑब्जेक्ट में तत्वों की एक सरणी होती है जो चयनकर्ता jQuery एपीआई से मेल खाती है जिसका उपयोग jQuery ऑब्जेक्ट को तुरंत करने के लिए किया गया था।
$(selector)
jQuery फ़ंक्शन को कॉल करता है (याद रखें कि $
यह एक संदर्भ है jQuery
, कोड window.jQuery = window.$ = jQuery;
:)। आंतरिक रूप से, jQuery फ़ंक्शन एक फ़ंक्शन ऑब्जेक्ट को तत्काल बदल देता है। तो जबकि यह तुरंत स्पष्ट नहीं हो सकता है, $()
आंतरिक रूप से उपयोग करता है new jQuery()
। इस jQuery ऑब्जेक्ट के निर्माण का एक हिस्सा चयनकर्ता के सभी मैचों को खोजने के लिए है। कंस्ट्रक्टर html स्ट्रिंग्स और तत्वों को भी स्वीकार करेगा । जब आप this
jQuery कंस्ट्रक्टर के पास जाते हैं, तो आप एक jQuery ऑब्जेक्ट के साथ निर्माण के लिए वर्तमान तत्व पास कर रहे हैं । JQuery ऑब्जेक्ट में चयनकर्ता से मेल खाने वाले DOM तत्वों की एक सरणी जैसी संरचना होती है (या मामले में सिर्फ एक तत्व this
)।
एक बार jQuery ऑब्जेक्ट के निर्माण के बाद, jQuery एपीआई अब सामने आ गया है। जब एक jQuery एपीआई फ़ंक्शन कहा जाता है, तो यह आंतरिक रूप से इस सरणी जैसी संरचना पर पुनरावृति करेगा। सरणी में प्रत्येक आइटम के लिए, यह कॉलबैक फ़ंक्शन को कॉल करता है, this
वर्तमान तत्व के कॉलबैक को बाइंड करता है। इस कॉल को ऊपर दिए गए कोड स्निपेट में देखा जा सकता है, जहां obj
सरणी जैसी संरचना है, और i
वर्तमान तत्व के सरणी में स्थिति के लिए उपयोग किया जाने वाला पुनरावृत्ति है।