jQuery बारे में पढ़ सकते fn
नामित एक आंतरिक वस्तु में संग्रहीत कार्यों का एक पुस्तकालय है। ये वे हैं जिन्हें आप प्रत्येक jQuery ऑब्जेक्ट पर कॉल कर सकते हैं।
जब आप $("div.someClass")
करते हैं तो आपको उस वर्ग के सभी <div>
तत्वों वाला एक jQuery ऑब्जेक्ट मिलता है। अब आप लागू करने के लिए $("div.someClass").each(someFunction)
कर सकते हैं। इसका मतलब है कि each()
fn
(इस मामले में एक अंतर्निहित) में संग्रहीत कार्यों में से एक है।
यदि आप आंतरिक fn
ऑब्जेक्ट को बढ़ाते हैं (जोड़ते हैं), तो आप स्वचालित रूप से एक ही वाक्यविन्यास में अपना कस्टम फ़ंक्शन उपलब्ध कराते हैं। आइए मान लें कि आपके पास एक ऐसा फ़ंक्शन है जो कंसोल पर सभी तत्वों को लॉग करता है, जिसे log()
कहा जाता है। आप इस फ़ंक्शन को $.fn
पर जोड़ सकते हैं, और उसके बाद इसे $("div.someClass").log()
के रूप में उपयोग कर सकते हैं।
हर समारोह fn
वस्तु के साथ जोड़ दिया इस तरह से कि अंदर समारोह शरीर, this
कीवर्ड jQuery वस्तु, जिसका उपयोग आपने को इंगित करेगा में बुलाया जाएगा।
सामान्य अभ्यास कस्टम फ़ंक्शन के अंत में this
वापस करना है, ताकि विधि श्रृंखला बंद न हो: $("div.someClass").log().each(someFunction)
।
$.fn
ऑब्जेक्ट में फ़ंक्शंस जोड़ने के कई तरीके हैं, कुछ दूसरों की तुलना में सुरक्षित हैं। एक बहुत सुरक्षित एक करना है:
jQuery.fn.extend({
foo: function() {
this.each(function() { console.log(this.tagName); });
return this;
}
})
दुर्भाग्य से आपका कोड के अंदर है जो कुछ भी आपका उदाहरण प्रोटोटाइप का बिल्कुल उपयोग नहीं करता है। यह काम करता है क्योंकि जावास्क्रिप्ट में, फ़ंक्शंस प्रथम श्रेणी की वस्तुएं होती हैं और उन्हें किसी अन्य चर की तरह पास किया जा सकता है। – adamnfish
हां, इस प्रकार घोषित वस्तुओं पर प्रोटोटाइप ऑब्जेक्ट मौजूद है, यह एक समान तरीके से काम करता है। मैं नीचे लिंक ऑब्जेक्ट.प्रोटोटाइप.in ओबीजे = 1; से कॉपी/पेस्ट कर सकता था; फ़ंक्शन ए() { this.inA = 2; } एप्रोटोटाइप.inAProto = 3; बीप्रोटोटाइप = नया ए; // बी में ए प्रोटोटाइप श्रृंखला बीप्रोटोटाइप.कोनस्ट्रक्टर = बी; फ़ंक्शन बी() { this.inB = 4; } B.prototype.inBProto = 5; एक्स = नया बी; document.write (x.inObj + ',' xxA + ',' + x.inAProto + ',' + x.inB + ',' + x.inBProto); – Benoit