मुझे jQuery के आर्किटेक्चर के बारे में एक और सवाल मिला। $('div')
निर्माण करती है एक नया jQuery
वस्तु:jQuery ('div') को सरणी की तरह पूछना क्यों संभव है?
$('div') instanceof jQuery; // true
मुझे पता है क्यों यह एक सरणी है जैसे कि यह क्वेरी करने के लिए संभव है, allthough यह एक सरणी नहीं है करना चाहते हैं?
$('div')[0]; // returns the first div in the document as a DOM node.
$.isArray($('div')); // false
मैं सिर्फ इस वाक्य से प्यार है, यह इतना साफ लग रहा है! मैंने यह भी देखा यह रिटर्न एक सरणी के रूप में डोम नोड्स:
console.log($('div'));
किसी ने मुझसे यह बताएं कि अपने ही वस्तुओं के लिए इस व्यवहार को लागू करने के कर सकते हैं?
मेरा अपना दृष्टिकोण इस तरह की कुछ तरीकों के साथ एक सरणी बनाने के लिए किया गया था:
var a = ['a', 'b', 'c'];
a.method = function(){ return 'test'; };
a; // ['a', 'b', 'c']
a[0]; // 'a'
a.method(); // 'test'
हालांकि इस तरह से jQuery यह करता है होना करने के लिए प्रतीत नहीं होता है के रूप में यह वास्तव में एक सरणी है:
$.isArray(a); // true
मुझे पता है कि कैसे jQuery इस जानने के लिए और अगर यह मेरा की तुलना में एक बेहतर समाधान है देखने के लिए करता है चाहते हैं।
आप का उपयोग '[]' संकेतन का उपयोग कर सकते * किसी * संपत्ति: ये articlea अधिक जानकारी है। सिर्फ सूचकांक नहीं। तो बस '$ ('div') [0] 'की तरह, आप' $ (' div ') [' jquery ']' कर सकते हैं, जो आपको jQuery संस्करण संख्या देगा। –
@amnotiam मुझे पता है कि। लेकिन जब मैं कंसोल में सामान्य वस्तुओं को मुद्रित करता हूं तो वे एक सरणी आउटपुट नहीं करते हैं। –
आह, यदि आप विशेष रूप से कंसोल आउटपुट के बारे में पूछ रहे हैं, तो यह वास्तव में कंसोल है जो आपने इसे दिया है इसके अनुसार सबसे अच्छा अनुमान लगा रहा है। [जे एंडी का जवाब] (http://stackoverflow.com/a/8793090/1106925) दिखाता है कि आम तौर पर कंसोल क्या करता है। –