दिलचस्प पोस्ट
Webservices url से पासवर्ड प्राप्त करें और उस पासवर्ड के माध्यम से पहुंचें जावा: पार्स जावा स्रोत कोड, निकालें तरीकों रूबी हेराडोक से मैं कैसे अग्रणी सफेद स्थान वर्ण निकाल सकता हूं? HTML पाठ इनपुट केवल संख्यात्मक इनपुट की अनुमति देता है पृष्ठभूमि के नीचे प्रदर्शित बूटस्ट्रैप मोडल MySQL LIMIT, OFFSET का उपयोग करके पृष्ठ पर अंक लगाना एंड्रॉइड छविदृश्य: सेटिंग खींचें और ज़ूम पैरामीटर चुटकी सीतनिद्रा में होना: कहाँ सम्मिलित करें = गलत, अद्यतन करने योग्य = गलत विदेशी कुंजी सम्मिलित समग्र कुंजी नक्षत्रों में हैं? संचालकों को तार के रूप में क्रोम एक्सटेंशन: चयनित टेक्स्ट कैप्चर कैसे करें और वेब सेवा को भेजें WCF ChannelFactory <T> बनाने गतिशील रूप से एक UILabel को अद्यतन करना जावा में विंडोज शॉर्टकट (.lnk) पार्सर? उन्नत ज़ीरोएमक्यू सॉकेट प्रकार को समझना पुनः आरंभ करने के लिए पुनर्प्राप्ति कार्रवाई के साथ Windows सेवा स्थापित करें

अगर ऑब्जेक्ट एक jQuery ऑब्जेक्ट है, तो जांचें

अगर कोई ऑब्जेक्ट एक jQuery ऑब्जेक्ट या एक नेटिव्ह जावास्क्रिप्ट ऑब्जेक्ट है, तो क्या यह जाँचने का एक तेज़ तरीका है?

उदाहरण:

var o = {}; var e = $('#element'); function doStuff(o) { if (o.selector) { console.log('object is jQuery'); } } doStuff(o); doStuff(e); 

जाहिर है, कोड ऊपर काम करता है लेकिन यह सुरक्षित नहीं है। आप संभावित ऑब्जेक्ट के लिए एक चयनकर्ता कुंजी जोड़ सकते हैं और उसी परिणाम प्राप्त कर सकते हैं। क्या यह सुनिश्चित करने का एक बेहतर तरीका है कि वस्तु वास्तव में एक jQuery ऑब्जेक्ट है?

(typeof obj == 'jquery') साथ लाइन में कुछ

वेब के समाधान से एकत्रित समाधान "अगर ऑब्जेक्ट एक jQuery ऑब्जेक्ट है, तो जांचें"

आप ऑपरेटर के instanceof उपयोग कर सकते हैं:

 obj instanceof jQuery 

स्पष्टीकरण : jQuery फ़ंक्शन (उर्फ $ ) एक कन्स्ट्रक्टर फ़ंक्शन के रूप में कार्यान्वित किया गया है । निर्माणकर्ता कार्यों को new उपसर्ग के साथ बुलाया जाना है।

जब आप $(foo) कॉल करते हैं, तो आंतरिक jQuery में यह new jQuery(foo) 1 का अनुवाद करता है jQuery एक नए इंस्टेंस को इंगित करने के लिए कन्स्ट्रक्टर फ़ंक्शन के अंदर जावास्क्रिप्ट प्रारंभ करने के लिए, इसके गुणों को jQuery.prototype (उर्फ jQuery.prototype ) पर पाया जाता है। इस प्रकार, आपको एक new ऑब्जेक्ट मिलता है, जहां instanceof jQuery true


1 यह वास्तव में new jQuery.prototype.init(foo) : कन्स्ट्रक्टर लॉजिक को एक अन्य कन्स्ट्रक्टर फ़ंक्शन के लिए ऑफलोड किया गया है जिसे init कहा जाता है, लेकिन अवधारणा एक ही है।

आप यहां वर्णित के रूप में .jquery संपत्ति का भी उपयोग कर सकते हैं: http://api.jquery.com/jquery-2/

 var a = { what: "A regular JS object" }, b = $('body'); if ( a.jquery ) { // falsy, since it's undefined alert(' a is a jQuery object! '); } if ( b.jquery ) { // truthy, since it's a string alert(' b is a jQuery object! '); } 

उदाहरण के ऑपरेटर को देखें।

 var isJqueryObject = obj instanceof jQuery 

किसी ऑब्जेक्ट के उदाहरण को देखने का सबसे अच्छा तरीका उदाहरण के ऑपरेटर के माध्यम से होता है या विधि के साथ है प्रोटोटाइपऑफ़ () जो निरीक्षण करता है कि किसी वस्तु का प्रोटोटाइप दूसरे ऑब्जेक्ट के प्रोटोटाइप श्रृंखला में है।

 obj instanceof jQuery; jQuery.prototype.isPrototypeOf(obj); 

लेकिन कभी-कभी यह एक दस्तावेज़ पर एकाधिक jQuery उदाहरणों के मामले में विफल हो सकता है। @ जॉर्जओ इवंकिन के रूप में उल्लेख किया गया:

अगर मेरे पास मेरे वर्तमान नामस्थान में $ ओर इशारा करते हैं और मेरे पास बाहरी नाम स्थान (जहां $ है jQuery1 ) से कोई ऑब्जेक्ट है, तो मुझे पता नहीं है कि ऑब्जेक्ट एक jQuery ऑब्जेक्ट है

उस समस्या को दूर करने का एक तरीका एक समापन या आईआईएफई में jQuery ऑब्जेक्ट को अलियासिंग कर रहा है

 //aliases jQuery as $ (function($, undefined) { /*... your code */ console.log(obj instanceof $); console.log($.prototype.isPrototypeOf(obj)); /*... your code */ }(jQuery1)); //imports jQuery1 

Obj में jquery संपत्ति की पूछताछ के द्वारा उस समस्या को दूर करने के अन्य तरीके

 'jquery' in obj 

हालांकि, अगर आप उस आवधिक मानों के साथ जांच करने का प्रयास करते हैं, तो यह एक त्रुटि फेंक देगा, ताकि आप obj को Object सुनिश्चित करके पिछली जाँच को संशोधित कर सकें

 'jquery' in Object(obj) 

हालांकि पिछला तरीका सबसे सुरक्षित नहीं है (आप किसी ऑब्जेक्ट में 'jquery' प्रॉपर्टी बना सकते हैं), हम दोनों दृष्टिकोणों के साथ काम करके सत्यापन में सुधार कर सकते हैं:

 if (obj instanceof jQuery || 'jquery' in Object(obj)) { } 

यहां समस्या यह है कि किसी वस्तु को संपत्ति jquery को स्वयं के रूप में परिभाषित कर सकते हैं, इसलिए बेहतर तरीका प्रोटोटाइप से पूछना होगा, और सुनिश्चित करेगा कि ऑब्जेक्ट null या undefined

 if (obj && (obj instanceof jQuery || obj.constructor.prototype.jquery)) { } 

मजबूर होने के कारण, if बयान वंडर वैल्यू ( null , undefined , false , 0 , "" ) में से कोई है, और फिर अन्य मान्यताओं को निष्पादित करने के लिए आय के ऑपरेटर का मूल्यांकन करके शॉर्ट सर्किट कर देगा।

अंत में हम एक उपयोगिता फ़ंक्शन लिख सकते हैं:

 function isjQuery(obj) { return (obj && (obj instanceof jQuery || obj.constructor.prototype.jquery)); } 

आइए देखें: लॉजिकल ऑपरेटर और सच्चाई / फाल्सी

 return el instanceof jQuery ? el.size() > 0 : (el && el.tagName); 

हालांकि, jQuery में ऑब्जेक्ट को जांचने का एक और तरीका है।

 jQuery.type(a); //this returns type of variable. 

मैंने चीजों को समझने के लिए उदाहरण बना दिया है, जेस्फीड लिंक

 var elArray = []; var elObjeto = {}; elArray.constructor == Array //TRUE elArray.constructor == Object//TALSE elObjeto.constructor == Array//FALSE elObjeto.constructor == Object//TRUE